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安装全攻略:APACHE
Oct 09 PHP
php5.2时间相差8小时
Jan 15 PHP
php 攻击方法之谈php+mysql注射语句构造
Oct 30 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
Feb 02 PHP
php实现天干地支计算器示例
Mar 14 PHP
在PHP中运行Linux命令并启动SSH服务的例子
Jun 12 PHP
浅析php设计模式之数据对象映射模式
Mar 03 PHP
thinkPHP基于ajax实现的菜单与分页示例
Jul 12 PHP
利用PHPExcel实现Excel文件的写入和读取
Apr 26 PHP
PHP实现的折半查找算法示例
Dec 19 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 PHP
php的单例模式及应用场景详解
Feb 27 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 服务器调试 Zend Debugger 的安装教程
2009/09/25 PHP
利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
2014/01/14 PHP
laravel框架中间件简单使用方法示例
2020/01/25 PHP
Nigma vs AM BO3 第一场2.13
2021/03/10 DOTA
javascript cookie操作类的实现代码小结附使用方法
2010/06/02 Javascript
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
2011/06/27 Javascript
jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON问题的解决方法
2011/07/28 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
基于KMP算法JavaScript的实现方法分析
2013/05/03 Javascript
jQuery知识点整理
2015/01/30 Javascript
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
2015/09/23 Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
2015/11/17 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
2015/11/18 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
jQuery Checkbox 全选 反选的简单实例
2016/11/29 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
Vue实现购物车场景下的应用
2017/11/27 Javascript
vue利用axios来完成数据的交互
2018/03/23 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
深入理解JS异步编程-Promise
2019/06/03 Javascript
JS数组方法shift()、unshift()用法实例分析
2020/01/18 Javascript
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
NumPy中的维度Axis详解
2019/11/26 Python
基于Pycharm加载多个项目过程图解
2020/01/19 Python
如何用python免费看美剧
2020/08/11 Python
最新Python idle下载、安装与使用教程图文详解
2020/11/28 Python
Nebula美国官网:便携式投影仪
2019/03/15 全球购物
linux面试题参考答案(1)
2016/01/22 面试题
大学生未来职业生涯规划书
2014/02/15 职场文书
宿舍保安职务说明书
2014/02/25 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
2014工程部年度工作总结
2014/12/17 职场文书