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字符转义相关函数小结(php下的转义字符串)
Apr 12 PHP
PHP 内存缓存加速功能memcached安装与用法
Sep 03 PHP
php实现读取和写入tab分割的文件
Jun 01 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
Jan 05 PHP
PHP常用文件操作函数和简单实例分析
Jun 03 PHP
一个简单安全的PHP验证码类、PHP验证码
Sep 24 PHP
zend框架实现支持sql server的操作方法
Dec 08 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
Feb 15 PHP
php实现留言板功能(代码详解)
Mar 28 PHP
PHP迭代与递归实现无限级分类
Aug 28 PHP
PHP实现SMTP邮件的发送实例
Sep 27 PHP
PHP simplexml_load_string()函数实例讲解
Feb 03 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 MsSql server时遇到的中文编码问题
2009/06/11 PHP
php调用dll的实例操作动画与代码分享
2012/08/14 PHP
PHP循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
php中smarty区域循环的方法
2015/06/11 PHP
php获取远程文件大小
2015/10/20 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
Laravel框架实现redis集群的方法分析
2017/09/14 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
2019/04/17 PHP
javascript脚本调试方法小结
2008/11/24 Javascript
javascript fullscreen全屏实现代码
2009/04/09 Javascript
解决iframe的frameborder在chrome/ff/ie下的差异
2010/08/12 Javascript
深入理解JavaScript系列(2) 揭秘命名函数表达式
2012/01/15 Javascript
JS创建自定义表格具体实现
2014/02/11 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
2015/03/10 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
2015/09/19 Javascript
Bootstrap安装环境配置教程分享
2016/05/27 Javascript
利用JQuery操作iframe父页面、子页面的元素和方法汇总
2017/09/10 jQuery
bootstrap时间插件daterangepicker使用详解
2017/10/19 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
详解JQuery基础动画操作
2019/04/12 jQuery
Layui给switch添加响应事件的例子
2019/09/03 Javascript
JS JQuery获取data-*属性值方法解析
2020/09/01 jQuery
用Python编写web API的教程
2015/04/30 Python
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
python实现祝福弹窗效果
2019/04/07 Python
python下的opencv画矩形和文字注释的实现方法
2019/07/09 Python
dpn网络的pytorch实现方式
2020/01/14 Python
Keras SGD 随机梯度下降优化器参数设置方式
2020/06/19 Python
Python实现对word文档添加密码去除密码的示例代码
2020/12/29 Python
利用纯html5绘制出来的一款非常漂亮的时钟
2015/01/04 HTML / CSS
写一个在SQL Server创建表的SQL语句
2012/03/10 面试题
建筑个人求职信范文
2014/01/25 职场文书
教师读书活动总结
2014/05/07 职场文书
缅怀革命先烈演讲稿
2014/05/14 职场文书
教师旷工检讨书
2015/08/15 职场文书