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+javascript的日历控件
Nov 19 PHP
PHP生成网页快照 不用COM不用扩展.
Feb 11 PHP
php入门学习知识点一 PHP与MYSql连接与查询
Jul 14 PHP
PHP整数取余返回负数的相关解决方法
May 15 PHP
php中实现记住密码下次自动登录的例子
Nov 06 PHP
主流PHP框架的优缺点对比分析
Dec 25 PHP
php中使用session防止用户非法登录后台的方法
Jan 27 PHP
php实现xml转换数组的方法示例
Feb 03 PHP
PHP实现Session入库/存入redis的方法
May 04 PHP
浅谈PHP发送HTTP请求的几种方式
Jul 25 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
Sep 22 PHP
php实现的顺序线性表示例
May 04 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
在Zeus Web Server中安装PHP语言支持
2006/10/09 PHP
PHP 图片上传代码
2011/09/13 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
2016/05/20 PHP
解决php extension 加载顺序问题
2019/08/16 PHP
PhpSpreadsheet设置单元格常用操作汇总
2020/11/13 PHP
jquery创建div 实现代码
2009/04/27 Javascript
javascript获取dom的下一个节点方法
2014/09/05 Javascript
初始Nodejs
2014/11/08 NodeJs
jQuery使用append在html元素后同时添加多项内容的方法
2015/03/26 Javascript
深入分析JSON编码格式提交表单数据
2015/06/25 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
基于bootstrap风格的弹框插件
2016/12/28 Javascript
angular+webpack2实战例子
2017/05/23 Javascript
详解可以用在VS Code中的正则表达式小技巧
2019/05/14 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
2020/12/01 Vue.js
[38:23]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第一场
2014/05/24 DOTA
Tensorflow中使用tfrecord方式读取数据的方法
2018/06/19 Python
Pandas读取MySQL数据到DataFrame的方法
2018/07/25 Python
python3+selenium自动化测试框架详解
2019/03/17 Python
python基于itchat模块实现微信防撤回
2019/04/29 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
PyTorch笔记之scatter()函数的使用
2020/02/12 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
如何用Python绘制3D柱形图
2020/09/16 Python
Coccinelle官网:意大利的著名皮具品牌
2019/05/15 全球购物
中式餐厅创业计划书范文
2014/01/23 职场文书
应届大专毕业生自我鉴定
2014/04/08 职场文书
联谊活动总结
2014/08/28 职场文书
2014年机关作风建设工作总结
2014/10/23 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
公司员工安全协议书
2014/11/21 职场文书
入团介绍人意见范文
2015/06/04 职场文书
推广普通话主题班会
2015/08/17 职场文书
css 中多种边框的实现小窍门
2021/04/07 HTML / CSS
MySQL GRANT用户授权的实现
2021/06/18 MySQL
Python办公自动化解决world文件批量转换
2021/09/15 Python