web开发
846
迭代器模式通俗的讲是遍历集合的成熟模式,迭代器模式的关键是将遍历集合的任务交给一个叫做迭代器的对象,它的工作时遍历并选择序列中的对象,而客户端程序员不必知道或关心该集合序列底层的结构。它的作用是使所有复杂数据结构的组件都可以使用循环来访问。
对象要实现迭代,需要使这个类实现 Iterator(SPL standard php library标准库提供),这是一个迭代器接口,实现该接口,必须实现以下方法:
current(),该函数返回当前数据项
key(),该函数返回当前数据项的键或者该项在列表中的位置
linux
1030
tmpwatch指令可删除不必要的暂存文件,可以设置文件超期时间,单位以小时计算。
语法
tmpwatch [-afqv][--test][超期时间][目录...]
参数
-a或--all 删除任何类型的文件。
-f或--force 强制删除文件或目录,其效果类似rm指令的"-f"参数。
-q或--quiet 不显示指令执行过程。
-v或--verbose 详细显示指令执行过程。
--test 仅作测试,并不真的删除文件或目录。
实例
tmpwatch --test 24 /tmp/
web开发
817
默认的PHP的echo、print之类的输出会被缓存,当缓存达到特定的大小或脚本执行结束,或强行刷新缓冲区才会发送到浏览器客户端。
`php.ini`的`outputing_buffer`字段默认是4096,表示缓存的大小,如果大于该值则会像浏览器客户端输出。但是我发现该值不管怎么改(`ini_get('outputing_buffer')`值始终为0),都不会影响输出,即不会有缓存,这里就不去研究为什么了,这里主要想说的是ob相关的函数。
有时我们需要对输出进行严格控制,比如我要输出100k的数据,而且是一次
web开发
822
string setlocale ( int $category , string $locale [, string $... ] )
设置本地地区信息(地区信息是针对一个地理区域的语言、货币、时间以及其他信息。)
$category可用的常量(这些常量都是php内置,结果都是int型):
LC_ALL - 包括下面的所有选项
LC_COLLATE -排序次序
LC_CTYPE - 字符类别及转换(例如所有字符大写或小写)
LC_MESSAGES - 系统消息格式
LC_MONETARY - 货
web开发
796
(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
717
stat命令:文件/文件系统的详细信息显示;
格式:stat 文件名
stat命令主要用于显示文件或文件系统的详细信息,该命令的语法格式如下:
-f 不显示文件本身的信息,显示文件所在文件系统的信息
-L 显示符号链接
-t 简洁模式,只显示摘要信息
需要注意的是在Mac下stat命令需加-x参数
Access:最后访问文件时间(cat等命令)
Modify:最后修改文件内容时间(vim等命令)
Change:最后修改文件属性时间(chmod/chown等命令)
函数返回的是四舍五入后的一个整数,无法精确到小数点后。
Number.toFixed()方法,是保留小数点后面的指定位数。例如:1.005.toFixed(2)返回的是1.00,并没有四舍五入。
这里推荐一个方法:
```js
var number = 1.005;
alert(Math.round(number * 100) / 100);
```
Mac OS
730
以下所有操作,请在命令行执行:
```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 OS
879
今天写个脚本,发现一个诡异的问题,主要是目录或文件中有空格导致脚本报错,具体案例如下:
###### 错误示范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
```
##