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访问查询mysql数据的三种方法
Oct 09 PHP
PHP学习笔记之二
Jan 17 PHP
php懒人函数 自动添加数据
Jun 28 PHP
php多层数组与对象的转换实例代码
Aug 05 PHP
PHP文件上传主要代码讲解
Sep 30 PHP
php实现数组筛选奇数和偶数示例
Apr 11 PHP
PHP实现删除字符串中任何字符的函数
Aug 11 PHP
php的laravel框架快速集成微信登录的方法
Dec 12 PHP
基于php实现的验证码小程序
Dec 13 PHP
PHP获取文本框、密码域、按钮的值实例代码
Apr 19 PHP
PHP封装的完整分页类示例
Aug 21 PHP
smarty模板的使用方法实例分析
Sep 18 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
PHP4实际应用经验篇(1)
2006/10/09 PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
2014/05/04 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
thinkphp 手机号和用户名同时登录
2017/01/20 PHP
Laravel统计一段时间间隔的数据方法
2019/10/09 PHP
使用PHP开发留言板功能
2019/11/19 PHP
浅谈JavaScript编程语言的编码规范
2011/10/21 Javascript
13 个JavaScript 性能提升技巧分享
2012/07/26 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
JS 实现导航栏悬停效果(续)
2013/09/24 Javascript
jQuery jcrop插件截图使用方法
2013/11/20 Javascript
js格式化时间和js格式化时间戳示例
2014/02/10 Javascript
JQuery选中checkbox方法代码实例(全选、反选、全不选)
2015/04/27 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
2016/08/29 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
2016/12/08 Javascript
JavaScript获取中英文混合字符串长度的方法示例
2017/02/04 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
2018/08/27 Javascript
vue调试工具vue-devtools安装及使用方法
2018/11/07 Javascript
微信小程序中遇到的iOS兼容性问题小结
2018/11/14 Javascript
仿ElementUI实现一个Form表单的实现代码
2019/04/23 Javascript
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
js实现网页随机验证码
2020/10/19 Javascript
Python堆排序原理与实现方法详解
2018/05/11 Python
Python Socket编程之多线程聊天室
2018/07/28 Python
python中如何进行连乘计算
2020/05/28 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
中餐厅主管的职责范文
2014/02/04 职场文书
《乌鸦和狐狸》教学反思
2014/02/08 职场文书
商场主管竞聘书
2014/03/31 职场文书
大学中国梦演讲稿
2014/04/23 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
Opencv实现二维直方图的计算及绘制
2021/07/21 Python
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python