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 相关文章推荐
在Windows中安装Apache2和PHP4的权威指南
Oct 09 PHP
php常用Stream函数集介绍
Jun 24 PHP
php使用多个进程同时控制文件读写示例
Feb 28 PHP
YII实现分页的方法
Jul 09 PHP
兼容ie6浏览器的php下载文件代码分享
Jul 14 PHP
php实现俄罗斯乘法实例
Mar 07 PHP
PHP实现清除MySQL死连接的方法
Jul 23 PHP
IOS 开发之NSDictionary转换成JSON字符串
Aug 14 PHP
详解laravel安装使用Passport(Api认证)
Jul 27 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
Sep 26 PHP
php fread函数使用方法总结
May 28 PHP
详细分析PHP 命名空间(namespace)
Jun 30 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脚本的10个技巧(4)
2006/10/09 PHP
php ImageMagick windows下安装教程
2015/01/26 PHP
PHP生成指定随机字符串的简单实现方法
2015/04/01 PHP
PHP中的多种加密技术及代码示例解析
2016/10/20 PHP
创建无限极分类树型结构的简单方法
2017/06/20 PHP
js用图作提交按钮或超连接
2008/03/26 Javascript
深入了解Node.js中的一些特性
2014/09/25 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
Node.js 去掉种子(torrent)文件里的邪恶信息
2015/03/27 Javascript
JavaScript基于setTimeout实现计数的方法
2015/05/08 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
2015/07/17 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
2015/12/30 Javascript
封装好的javascript前端分页插件pagination
2016/01/04 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
angular学习之从零搭建一个angular4.0项目
2017/07/10 Javascript
node.js通过axios实现网络请求的方法
2018/03/05 Javascript
node打造微信个人号机器人的方法示例
2018/04/26 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
2019/12/29 Javascript
解决vuex改变了state的值,但是页面没有更新的问题
2020/11/12 Javascript
Python+OpenCV图片局部区域像素值处理改进版详解
2019/01/23 Python
python通过paramiko复制远程文件及文件目录到本地
2019/04/30 Python
Python企业编码生成系统之主程序模块设计详解
2019/07/26 Python
Python中list循环遍历删除数据的正确方法
2019/09/02 Python
python统计字符串中字母出现次数代码实例
2020/03/02 Python
Python基于read(size)方法读取超大文件
2020/03/12 Python
在python下实现word2vec词向量训练与加载实例
2020/06/09 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
2020/06/23 Python
基于Python模拟浏览器发送http请求
2020/11/06 Python
Python用access判断文件是否被占用的实例方法
2020/12/17 Python
网络通讯中,端口有什么含义,端口的取值范围
2012/11/23 面试题
大学生就业推荐信范文
2013/11/29 职场文书
施工班组长岗位职责
2014/01/05 职场文书
小学英语复习计划
2015/01/19 职场文书
被告代理词范文
2015/05/25 职场文书
任长霞观后感
2015/06/16 职场文书
MySQL查询日期时间
2022/05/15 MySQL