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静态类
Nov 25 PHP
生成静态页面的PHP类
Nov 25 PHP
php性能优化分析工具XDebug 大型网站调试工具
May 22 PHP
php文档更新介绍
Jul 22 PHP
php若干单维数组遍历方法的比较
Sep 20 PHP
PHP 异步执行方法,模拟多线程的应用分析
Jun 03 PHP
php使用ob_start()实现图片存入变量的方法
Nov 14 PHP
PHP加密技术的简单实现
Sep 04 PHP
[原创]php正则删除img标签的方法示例
May 27 PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
Mar 18 PHP
Thinkphp5框架使用validate实现验证功能的方法
Aug 27 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中三个等号(===)和两个等号(==)的区别
2013/08/06 PHP
ThinkPHP模板引擎之导入资源文件方法详解
2014/06/18 PHP
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
深入理解PHP中的count函数
2016/05/31 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
通过jquery还原含有rowspan、colspan的table的实现方法
2012/02/10 Javascript
Node.js安装教程和NPM包管理器使用详解
2014/08/16 Javascript
checkbox批量选中,获取选中项的值的简单实例
2016/06/28 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
JS实现列表页面隔行变色效果
2017/03/25 Javascript
javascript将url解析为json格式的两种方法
2017/08/18 Javascript
原生js封装运动框架的示例讲解
2017/10/01 Javascript
vue中实现滚动加载更多的示例
2017/11/08 Javascript
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
Vuex入门到上手教程
2018/06/20 Javascript
jQuery无冲突模式详解
2019/01/17 jQuery
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
vue中的循环对象属性和属性值用法
2020/09/04 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
jQuery实现动态向上滚动
2020/12/21 jQuery
python使用urllib模块和pyquery实现阿里巴巴排名查询
2014/01/16 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
2017/05/18 Python
python获取代理IP的实例分享
2018/05/07 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
Python线程指南分享
2019/11/19 Python
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
2014/04/10 HTML / CSS
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
德国的各种媒体在线商店:Thalia.de(书籍、电子书、玩具等)
2020/10/08 全球购物
安全生产大检查方案
2014/05/07 职场文书
英语教师自荐信
2014/05/26 职场文书
2014年房产经纪人工作总结
2014/12/08 职场文书
MySQL中CURRENT_TIMESTAMP的使用方式
2021/11/27 MySQL