PHP迭代器模式 web开发

PHP迭代器模式

846 0

迭代器模式通俗的讲是遍历集合的成熟模式,迭代器模式的关键是将遍历集合的任务交给一个叫做迭代器的对象,它的工作时遍历并选择序列中的对象,而客户端程序员不必知道或关心该集合序列底层的结构。它的作用是使所有复杂数据结构的组件都可以使用循环来访问。 对象要实现迭代,需要使这个类实现 Iterator(SPL standard php library标准库提供),这是一个迭代器接口,实现该接口,必须实现以下方法: current(),该函数返回当前数据项 key(),该函数返回当前数据项的键或者该项在列表中的位置

Linux命令之tmpwatch linux

Linux命令之tmpwatch

1030 2

tmpwatch指令可删除不必要的暂存文件,可以设置文件超期时间,单位以小时计算。 语法 tmpwatch [-afqv][--test][超期时间][目录...] 参数 -a或--all  删除任何类型的文件。 -f或--force  强制删除文件或目录,其效果类似rm指令的"-f"参数。 -q或--quiet  不显示指令执行过程。 -v或--verbose  详细显示指令执行过程。 --test  仅作测试,并不真的删除文件或目录。 实例 tmpwatch --test 24 /tmp/

PHP输出控制 web开发

PHP输出控制

817 0

默认的PHP的echo、print之类的输出会被缓存,当缓存达到特定的大小或脚本执行结束,或强行刷新缓冲区才会发送到浏览器客户端。 `php.ini`的`outputing_buffer`字段默认是4096,表示缓存的大小,如果大于该值则会像浏览器客户端输出。但是我发现该值不管怎么改(`ini_get('outputing_buffer')`值始终为0),都不会影响输出,即不会有缓存,这里就不去研究为什么了,这里主要想说的是ob相关的函数。 有时我们需要对输出进行严格控制,比如我要输出100k的数据,而且是一次

PHP之setlocale|bindtextdomain|textdomain|gettext web开发

PHP之setlocale|bindtextdomain|textdomain|gettext

822 0

string setlocale ( int $category , string $locale [, string $... ] ) 设置本地地区信息(地区信息是针对一个地理区域的语言、货币、时间以及其他信息。) $category可用的常量(这些常量都是php内置,结果都是int型): LC_ALL - 包括下面的所有选项 LC_COLLATE -排序次序 LC_CTYPE - 字符类别及转换(例如所有字符大写或小写) LC_MESSAGES - 系统消息格式 LC_MONETARY - 货

PHP之ReflectionClass web开发

PHP之ReflectionClass

796 0

(PHP 5, PHP 7) ReflectionClass 类报告了一个类的有关信息。 ```php //类摘要 ReflectionClass implements Reflector { //常量 const integer IS_IMPLICIT_ABSTRACT = 16 ; const integer IS_EXPLICIT_ABSTRACT = 32 ; const integer IS_FINAL = 64 ; //属性 public $name ; //方法 public __construc

Linux命令之stat linux

Linux命令之stat

717 0

stat命令:文件/文件系统的详细信息显示; 格式:stat 文件名 stat命令主要用于显示文件或文件系统的详细信息,该命令的语法格式如下: -f  不显示文件本身的信息,显示文件所在文件系统的信息 -L  显示符号链接 -t  简洁模式,只显示摘要信息 需要注意的是在Mac下stat命令需加-x参数 Access:最后访问文件时间(cat等命令) Modify:最后修改文件内容时间(vim等命令) Change:最后修改文件属性时间(chmod/chown等命令) ![](htt

运行shell脚本使终端跟随脚本cd命令切换目录 linux

运行shell脚本使终端跟随脚本cd命令切换目录

1298 0

日常开发中经常需要写一点脚本,`project.sh`有如下一段内容: ```bash #!/usr/bin/env bash dir=/data/httpd/www/project/$1 if [ ! -z $1 ] && [ -d $dir ];then cd $dir else cd /data/httpd/www/project fi ``` 在当前终端,你如果直接执行`./project.sh`,是无法实现切换到指定目录的,因为shell在执行脚本时,会创建一个子shell,并在子she

javascript四舍五入保留两位小数 web开发

javascript四舍五入保留两位小数

734 0

JavaScript自带的Math.Round()函数返回的是四舍五入后的一个整数,无法精确到小数点后。 Number.toFixed()方法,是保留小数点后面的指定位数。例如:1.005.toFixed(2)返回的是1.00,并没有四舍五入。 这里推荐一个方法: ```js var number = 1.005; alert(Math.round(number * 100) / 100); ```

Mac下的Beyond Compare手动破解方法 Mac OS

Mac下的Beyond Compare手动破解方法

730 0

以下所有操作,请在命令行执行: ```bash cd /Applications/Beyond\ Compare.app/Contents/MacOS/ mv BCompare BCompare.real vim BCompare #复制下面的脚本,粘贴进去 chmod +x BCompare #至此,大功告成 ``` ```bash #!/bin/bash if [ -e /Users/$(whoami)/Library/Application\ Support/Beyond\ Compare/registr

Mac下的shell目录文件空格问题浅析 Mac OS

Mac下的shell目录文件空格问题浅析

879 0

今天写个脚本,发现一个诡异的问题,主要是目录或文件中有空格导致脚本报错,具体案例如下: ###### 错误示范1: ```bash #!/bin/bash file="/Users/$(whoami)/Library/Application\ Support/Beyond\ Compare/registry.dat" #if [ -e $file ] if [ -e "$file" ] then echo "文件存在"; else echo "文件不存在"; fi ``` ##