1.函数的任意数目的参数 func_get_args()
你可能知道PHP允许你定义一个默认参数的函数。但你可能并不知道PHP还允许你定义一个完全任意的参数的函数
例子
<?php
function foo(){
$numargs = func_num_args ();
echo "Number of arguments: $numargs <br />\n" ;
if ( $numargs >= 2 ) {
echo "Second argument is: " . func_get_arg ( 1 ) . "<br />\n" ;
}
$arg_list = func_get_args ();
for ( $i = 0 ; $i < $numargs ; $i ++) {
echo "Argument $i is: " . $arg_list [ $i ] . "<br />\n" ;
}
}
foo ( 1 , 2 , 3 );
?>
2.使用 Glob() 查找文件
例子
// 取得所有的后缀为PHP的文件
$files = glob('.php');
// 取PHP文件和TXT文件
$files = glob('.{php,txt}', GLOB_BRACE);
//还可以加上路径:
$files = glob('../images/a.jpg');
//如果你想得到绝对路径,你可以调用?realpath() 函数:
$files = glob('../images/a.jpg');
// applies the function to each array element
$files = array_map('realpath',$files);
3. 内存使用信息
PHP 是有垃圾回收机制的,而且有一套很复杂的内存管理机制。你可以知道你的脚本所使用的内存情况。要知道当前内存使用情况,你可以使用? memory_get_usage() 函数,如果你想知道使用内存的峰值,你可以调用memory_get_peak_usage() 函数。
echo "Initial: ".memory_get_usage()." bytes \n";
/ 输出
Initial: 361400 bytes
/
// 使用内存
for ($i = 0; $i < 100000; $i++) {
$array []= md5($i);
}
// 删除一半的内存
for ($i = 0; $i < 100000; $i++) {
unset($array[$i]);
}
echo "Final: ".memory_get_usage()." bytes \n";
/ prints
Final: 885912 bytes
/
echo "Peak: ".memory_get_peak_usage()." bytes \n";
/ 输出峰值
Peak: 13687072 bytes
/
4.CPU使用信息
使用?getrusage() 函数可以让你知道CPU的使用情况。注意,这个功能在Windows下不可用。
例子
<?php
$dat = getrusage ();
echo $dat [ "ru_nswap" ]; // number of swaps
echo $dat [ "ru_majflt" ]; // number of page faults
echo $dat [ "ru_utime.tv_sec" ]; // user time used (seconds)
echo $dat [ "ru_utime.tv_usec" ]; // user time used (microseconds)
?>
5.生成唯一的ID
有很多人使用 md5() 来生成一个唯一的ID,如下所示:
// generate unique string
echo md5(time() . mtrand(1,1000000));
其实,PHP中有一个叫?uniqid() 的函数是专门用来干这个的:
// generate unique string
echo uniqid();
可以加上前缀
// 前缀
echo uniqid('foo');
/ 输出
foo_4bd67d6cd8b8f
/
// 有更多的熵
echo uniqid('',true);
/ 输出
4bd67d6cd8b926.12135106
/
// 都有
echo uniqid('bar_',true);
/ 输出
bar_4bd67da367b650.43684647
/
6.字符串压缩
当我们说到压缩,我们可能会想到文件压缩,其实,字符串也是可以压缩的。PHP提供了?gzcompress() 和 gzuncompress() 函数:
$string = '***这里是比较大的字符串';
$compressed = gzcompress($string);
echo "Original size: ". strlen($string)."\n";
/ 输出原始大小
Original size: 800
/
echo "Compressed size: ". strlen($compressed)."\n";
/ 输出压缩后的大小
Compressed size: 418
*/
// 解压缩
$original = gzuncompress($compressed);
几乎有50% 压缩比率。同时,你还可以使用?gzencode() 和 gzdecode() 函数来压缩,只不用其用了不同的压缩算法。
已有 0 条评论