PHP经典函数
sys_getloadavg()
这个函数返回当前系统的负载均值信息(当然 Windows 下不适用),详细文档可以翻阅 PHP的相关文档。文档中有段示例代码,基本上也就能看出它的用途了。
$load = sys_getloadavg();
if ($load[0] > 80) {
header('HTTP/1.1 503 Too busy, try again later');
die('Server too busy. Please try again later.');
}
//PS,如果“很不幸”你的 PHP 环境中没有这个函数,可以考虑使用下面这段代码
if (!function_exists('sys_getloadavg')) {
function sys_getloadavg()
{
$loadavg_file = '/proc/loadavg';
if (file_exists($loadavg_file)) {
return explode(chr(32),file_get_contents($loadavg_file));
}
return array(0,0,0);
}
}
debug_backtrace兄弟
使用请参考使用debug_backtrace()做PHP调试
get_browser()
该方法参考一个名叫browscap.ini的文件,该文件收录了各种浏览器信息,通过比对实现查找客户浏览器的功能。 两个使用方法:
1.下载最新的browscap.ini,放入PHP的安装目录或者C:\Windows文件夹下
2.在PHP.INI文件中加入以下配置
[browscap]
;https://blog.phpgao.com/classic_code/
browscap = php_browscap.ini
3.使用代码如下
http://www.phpgao.com</a>
print_r($browser);
返回结果如下
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3
Array
(
[browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
[browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
[parent] => Firefox 0.9
[platform] => WinXP
[browser] => Firefox
[version] => 0.9
[majorver] => 0
[minorver] => 9
[cssversion] => 2
[frames] => 1
[iframes] => 1
[tables] => 1
[cookies] => 1
[backgroundsounds] =>
[vbscript] =>
[javascript] => 1
[javaapplets] => 1
[activexcontrols] =>
[cdf] =>
[aol] =>
[beta] => 1
[win16] =>
[crawler] =>
[stripper] =>
[wap] =>
[netclr] =>
)
另一种方法:
http://alexandre.alapetite.fr/doc-alex/php-local-browscap/index.en.html
glob()
eg1:
方便地替代 opendir() 和相关函数
<?php
$matches = glob("*.txt");
if ( is_array ( $matches ) ) {
foreach ( $matches as $filename) {
echo "$filename size " . filesize($filename) . "\n";
}
}
/*
以上例程的输出类似于:
funclist.txt size 44686
funcsummary.txt size 267625
quickref.txt size 137820
*/
?>
eg2:获取所有文件名,并输出为一个带链接的列表
<?php
foreach (glob("*.*") as $filename)
{
echo "<a href=\"".$filename."\">".$filename."</a><br/>";
}
?>
eg3:非递归实现文件遍历
<?php
function scandir_through($dir)
{
$items = glob($dir . '/*');
for ($i = 0; $i < count($items); $i++) {
if (is_dir($items[$i])) {
$add = glob($items[$i] . '/*');
$items = array_merge($items, $add);
}
}
return $items;
}
?>
更多使用请参考:
http://php.net/manual/zh/function.glob.php
PHP Filter 函数
让人很省心的函数,自动验证电子邮件或者url格式,使用方法请参考:
http://www.w3school.com.cn/php/php_ref_filter.asp
错误处理
set_error_handler — 设置一个用户定义的错误处理函数
占个坑,以后讲