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&amp;&amp;mysql)六
Oct 09 PHP
用PHP和ACCESS写聊天室(一)
Oct 09 PHP
PHP strtr() 函数使用说明
Nov 21 PHP
php 图像函数大举例(非原创)
Jun 20 PHP
Apache中php.ini的设置方法
Feb 28 PHP
测试php函数的方法
Nov 13 PHP
php使用curl抓取qq空间的访客信息示例
Feb 28 PHP
PHP 魔术变量和魔术函数详解
Feb 25 PHP
PHP浮点数精度问题汇总
May 13 PHP
php有效防止同一用户多次登录
Nov 19 PHP
joomla组件开发入门教程
May 04 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
Dec 10 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中单引号和双引号到底有啥区别呢?
2015/03/04 PHP
7个鲜为人知却非常实用的PHP函数
2015/07/01 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
2013/04/26 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
2014/01/15 Javascript
jQuery实现点击水纹波动动画
2016/04/10 Javascript
TinyMCE汉化及本地上传图片功能实例详解
2016/05/31 Javascript
js入门之Function函数的使用方法【新手必看】
2016/11/22 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
基于JS实现网页中的选项卡(两种方法)
2017/06/16 Javascript
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
2018/04/11 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
2018/11/08 Javascript
react-router-dom 嵌套路由的实现
2020/05/02 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
2020/07/30 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
Python单例模式实例分析
2015/01/14 Python
python基于pygame实现响应游戏中事件的方法(附源码)
2015/11/11 Python
Python中super()函数简介及用法分享
2016/07/11 Python
python开发利器之ulipad的使用实践
2017/03/16 Python
python 阶乘累加和的实例
2019/02/01 Python
Python3操作MongoDB增册改查等方法详解
2020/02/10 Python
前端实现背景虚化但内容清晰且自适应 的实例代码
2019/08/01 HTML / CSS
毕业生求职推荐信
2013/11/04 职场文书
会计电算化专业毕业生推荐信
2013/12/24 职场文书
物业总经理岗位职责
2014/02/28 职场文书
指导教师评语
2014/04/26 职场文书
应届毕业生求职信范文
2014/07/07 职场文书
开发房地产协议书
2014/09/14 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
工艺技术员岗位职责
2015/02/04 职场文书
如何撰写创业策划书
2019/06/27 职场文书
python 算法题——快乐数的多种解法
2021/05/27 Python
详细聊聊MySQL中慢SQL优化的方向
2021/08/30 MySQL
Django框架模板用法详解
2022/06/10 Python