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() 函数来压缩,只不用其用了不同的压缩算法。