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中支持多种编码的中文字符串截取函数!
Mar 20 PHP
php mssql 时间格式问题
Jan 13 PHP
用php实现让页面只能被百度gogole蜘蛛访问的方法
Dec 29 PHP
奇怪的PHP引用效率问题分析
Mar 23 PHP
php生成图形验证码几种方法小结
Aug 15 PHP
PHP Curl多线程原理实例详解
Nov 06 PHP
php中数字0和空值的区别分析
Jun 05 PHP
php jsonp单引号转义
Nov 23 PHP
PHP中spl_autoload_register()函数用法实例详解
Jul 18 PHP
PHP二维数组矩形转置实例
Jul 20 PHP
PHP PDOStatement::bindValue讲解
Jan 30 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
几种显示数据的方法的比较
2006/10/09 PHP
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
php preg_replace替换实例讲解
2013/11/04 PHP
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
js 高效去除数组重复元素示例代码
2013/12/19 Javascript
javascript如何判断输入的url是否正确
2014/04/11 Javascript
jQuery选择器源码解读(八):addCombinator函数
2015/03/31 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
浅析JS原型继承与类的继承
2016/04/07 Javascript
基于JS实现EOS隐藏错误提示层代码
2016/04/25 Javascript
javascript实现抽奖程序的简单实例
2016/06/07 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
一道面试题引发的对javascript类型转换的思考
2017/03/06 Javascript
详解vue事件对象、冒泡、阻止默认行为
2017/03/20 Javascript
Javascript中类式继承和原型式继承的实现方法和区别之处
2017/04/25 Javascript
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
vue项目中在外部js文件中直接调用vue实例的方法比如说this
2019/04/28 Javascript
JavaScript工具库MyTools详解
2020/01/01 Javascript
Vue实现 点击显示再点击隐藏效果(点击页面空白区域也隐藏效果)
2020/01/16 Javascript
react组件基本用法示例小结
2020/04/27 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
python的urllib模块显示下载进度示例
2014/01/17 Python
python关闭windows进程的方法
2015/04/18 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
2019/06/27 Python
python读出当前时间精度到秒的代码
2019/07/05 Python
以SQLite和PySqlite为例来学习Python DB API
2020/02/05 Python
详解css3 mask遮罩实现一些特效
2018/10/24 HTML / CSS
css3发光搜索表单分享
2014/04/11 HTML / CSS
JDK安装目录下有哪些内容
2014/08/25 面试题
优秀大学生的自我评价
2014/01/16 职场文书
小学运动会表扬稿
2014/01/19 职场文书
奥巴马的演讲稿
2014/05/15 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书
婚礼答谢词范文
2015/09/29 职场文书
python文本处理的方案(结巴分词并去除符号)
2021/05/26 Python