PHP中10个不常见却非常有用的函数


Posted in PHP onMarch 21, 2010

1. sys_getloadavg()
sys_getloadavt()可以获得系统负载情况。该函数返回一个包含三个元素的数组,每个元素分别代表系统再过去的1、5和15分钟内的平均负载。
与其让服务器因负载过高而宕掉,不如在系统负载很高时主动die掉一个脚本,sys_getloadavg()就是用来帮你实现这个功能的。 不过很遗憾,该函数在windows下无效。
2. pack()
Pack()能将md5()返回的32位16进制字符串转换为16位的二进制字符串,可以节省存储空间。
3. cal_days_in_month()
cal_days_in_month()能够返回指定月份共有多少天。
4. _()
WordPress开发者经常能见到这个函数,还有_e()。这两个函数功能相同,与gettext()函数结合使用,能实现网站的多语言化。具体可参见PHP手册的相关部分介绍。
5. get_browser()
在发送页面前先看看用户的浏览器都能做些什么是不是挺好?get_browser()能获得用户的浏览器类型,以及浏览器支持的功能,不过首先你需要一个php_browscap.ini文件,用来给函数做参考文件。
要注意,该函数对浏览器功能的判断是基于该类浏览器的一般特性的。例如,如果用户关闭了浏览器对JavaScript的支持,函数无法得知这一点。但是在判断浏览器类型和OS平台方面,该函数还是很准确的。
6. debug_print_backtrace()
这是一个调试用的函数,能帮助你发现代码中的逻辑错误。要理解这个函数,还是直接看个例子吧:

$a = 0; 
function iterate() { 
global $a; 
if( $a < 10 ) 
recur(); 
echo $a . ", "; 
} 
function recur() { 
global $a; 
$a++; 
// how did I get here? 
echo "\n\n\n”; 
debug_print_backtrace(); 
if( $a < 10 ) 
iterate(); 
} 
iterate(); 
# OUTPUT: 
#0 recur() called at [C:\htdocs\php_stuff\index.php:8] 
#1 iterate() called at [C:\htdocs\php_stuff\index.php:25] 
#0 recur() called at [C:\htdocs\php_stuff\index.php:8] 
#1 iterate() called at [C:\htdocs\php_stuff\index.php:21] 
#2 recur() called at [C:\htdocs\php_stuff\index.php:8] 
#3 iterate() called at [C:\htdocs\php_stuff\index.php:25] 
#0 recur() called at [C:\htdocs\php_stuff\index.php:8] 
#1 iterate() called at [C:\htdocs\php_stuff\index.php:21] 
#2 recur() called at [C:\htdocs\php_stuff\index.php:8] 
#3 iterate() called at [C:\htdocs\php_stuff\index.php:21] 
#4 recur() called at [C:\htdocs\php_stuff\index.php:8] 
#5 iterate() called at [C:\htdocs\php_stuff\index.php:25]

7. metaphone()
这个函数返回单词的metaphone值,相同读音的单词具有相同的metaphone值,也就是说这个函数可以帮你判断两个单词的读音是否相同。不过对中文就无效了。。。
8. natsort()
natsort()能将一个数组以自然排序法进行排列,直接看个例子吧:
$items = array( 
“100 apples”, “5 apples”, “110 apples”, “55 apples” 
); 
// normal sorting: 
sort($items); 
print_r($items); 
# Outputs: 
# Array 
# ( 
# [0] => 100 apples 
# [1] => 110 apples 
# [2] => 5 apples 
# [3] => 55 apples 
# ) 
natsort($items); 
print_r($items); 
# Outputs: 
# Array 
# ( 
# [2] => 5 apples 
# [3] => 55 apples 
# [0] => 100 apples 
# [1] => 110 apples 
# )

9. levenshtein()
Levenshtein()告诉你两个单词之间的“距离”。它告诉你如果想把一个单词变成另一个单词,需要插入、替换和删除多少字母。
看个例子吧:
$dictionary = array( 
“php”, “javascript”, “css” 
); 
$word = “japhp”; 
$best_match = $dictionary[0]; 
$match_value = levenshtein($dictionary[0], $word); 
foreach($dictionary as $w) { 
$value = levenshtein($word, $w); 
if( $value < $match_value ) { 
$best_match = $w; 
$match_value = $value; 
} 
} 
echo “Did you mean the ‘$best_match' category?”;

10. glob()
glob()会让你觉得用opendir(), readdir()和closedir()来寻找文件非常蠢。
foreach (glob(“*.php”) as $file) 
echo “$file\n”;
PHP 相关文章推荐
PHP之COOKIE支持详解
Sep 20 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
Sep 05 PHP
PHP.ini安全配置检测工具pcc简单介绍
Jul 02 PHP
PHP基于文件存储实现缓存的方法
Jul 20 PHP
php中preg_match的isU代表什么意思
Oct 01 PHP
适用于初学者的简易PHP文件上传类
Oct 29 PHP
使用Composer安装Yii框架的方法
Mar 15 PHP
浅谈PHP链表数据结构(单链表)
Jun 08 PHP
PHP实现查询手机归属地的方法详解
Apr 28 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
Jun 07 PHP
php生成HTML文件的类方法
Oct 11 PHP
PHP pthreads v3使用中的一些坑和注意点分析
Feb 21 PHP
初次接触php抽象工厂模式(Elgg)
Mar 21 #PHP
PHP5与MySQL数据库操作常用代码 收集
Mar 21 #PHP
ajax+php打造进度条 readyState各状态
Mar 20 #PHP
elgg 获取文件图标地址的方法
Mar 20 #PHP
PHP 解决utf-8和gb2312编码转换问题
Mar 18 #PHP
ecshop 订单确认中显示省市地址信息的方法
Mar 15 #PHP
php smarty函数扩展
Mar 15 #PHP
You might like
如何使用PHP实现javascript的escape和unescape函数
2013/06/29 PHP
PHP在引号前面添加反斜杠(PHP去除反斜杠)
2013/09/28 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
简单模拟node.js中require的加载机制
2016/10/27 Javascript
学习vue.js中class与style绑定
2016/12/03 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
移动端效果之IndexList详解
2017/10/20 Javascript
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
ng-zorro-antd 入门初体验
2018/12/03 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
2019/11/09 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
python编程培训 python培训靠谱吗
2018/01/17 Python
Python实现的随机森林算法与简单总结
2018/01/30 Python
python操作excel的方法(xlsxwriter包的使用)
2018/06/11 Python
python并发和异步编程实例
2018/11/15 Python
Python面向对象之继承和多态用法分析
2019/06/08 Python
python Django 创建应用过程图示详解
2019/07/29 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
Python 实现日志同时输出到屏幕和文件
2020/02/19 Python
python开发入门——列表生成式
2020/09/03 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
2021/01/29 Python
浅析HTML5:'data-'属性的作用
2018/01/23 HTML / CSS
Java面试题:请问一下代码输出是什么
2015/05/27 面试题
使用Vue.js和MJML创建响应式电子邮件
2021/03/23 Vue.js
大专自我鉴定范文
2013/10/01 职场文书
教师岗位职责
2013/11/17 职场文书
小学生成长感言
2014/01/30 职场文书
工艺工程师岗位职责
2014/03/04 职场文书
市场部经理岗位职责
2014/04/10 职场文书
红领巾心向党演讲稿
2014/09/10 职场文书
2014国庆节演讲稿:祖国在我心中(400字)
2014/09/25 职场文书
无房证明样本
2015/06/17 职场文书
预备党员入党思想汇报(范文)
2019/08/14 职场文书
Python3 如何开启自带http服务
2021/05/18 Python