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 JSON 数据解析代码
May 26 PHP
php获取当前网址url并替换参数或网址的方法
Jun 06 PHP
php中3des加密代码(完全与.net中的兼容)
Aug 02 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
Apr 23 PHP
php类常量的使用详解
Jun 08 PHP
用PHP和Shell写Hadoop的MapReduce程序
Apr 15 PHP
YII路径的用法总结
Jul 09 PHP
使用 PHPStorm 开发 Laravel
Mar 24 PHP
php简单实现发送带附件的邮件
Jun 10 PHP
使用PHP如何实现高效安全的ftp服务器(二)
Dec 30 PHP
php实现session共享的实例方法
Sep 19 PHP
Laravel中Kafka的使用详解
Mar 24 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使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
利用PHP命令行模式采集股票趋势信息
2016/08/09 PHP
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
2007/10/01 Javascript
javascript中拼接HTML字符串的最快、最好的方法
2014/06/07 Javascript
jQuery中on()方法用法实例详解
2015/02/06 Javascript
js实现分割上传大文件
2016/03/09 Javascript
只需五句话搞定JavaScript作用域(经典)
2016/07/26 Javascript
用自定义图片代替原生checkbox实现全选,删除以及提交的方法
2016/10/18 Javascript
JS实现仿百度文库评分功能
2017/01/12 Javascript
Vue2.0实现1.0的搜索过滤器功能实例代码
2017/03/20 Javascript
javascript如何用递归写一个简单的树形结构示例
2017/09/06 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
jQuery中的类名选择器(.class)用法简单示例
2018/05/14 jQuery
JavaScript设计模式之工厂模式简单实例教程
2018/07/03 Javascript
实现Vue的markdown文档可以在线运行的方法示例
2018/12/11 Javascript
js实现图片区域可点击大小随意改变(适用移动端)代码实例
2019/09/11 Javascript
Javascript Worker子线程代码实例
2020/02/20 Javascript
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
2020/06/11 Javascript
[04:52]DOTA2亚洲邀请赛附加赛 TOP10精彩集锦
2015/01/29 DOTA
dataframe设置两个条件取值的实例
2018/04/12 Python
查看python下OpenCV版本的方法
2018/08/03 Python
python 通过 socket 发送文件的实例代码
2018/08/14 Python
浅析Python与Mongodb数据库之间的操作方法
2019/07/01 Python
Win10里python3创建虚拟环境的步骤
2020/01/31 Python
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
Ajax主要包含了哪些技术
2014/06/12 面试题
生产现场工艺工程师岗位职责
2013/11/28 职场文书
简历的自我评价范文
2014/02/04 职场文书
《在大海中永生》教学反思
2014/02/24 职场文书
文秘大学生求职信
2014/02/25 职场文书
挂牌仪式主持词
2014/03/20 职场文书
初中生毕业评语
2014/12/29 职场文书
2015纪念九一八事变84周年演讲稿
2015/03/19 职场文书
left join、inner join、right join的区别
2021/04/05 MySQL
用python自动生成日历
2021/04/24 Python
k8s部署redis cluster集群的实现
2021/06/24 Redis