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中取得image按钮传递的name值
Oct 09 PHP
COM in PHP (winows only)
Oct 09 PHP
php下通过伪造http头破解防盗链的代码
Jul 03 PHP
php中获取关键词及所属来源搜索引擎名称的代码
Feb 15 PHP
php calender(日历)二个版本代码示例(解决2038问题)
Dec 24 PHP
ThinkPHP3.2.2的插件控制器功能简述
Jul 09 PHP
盘点PHP和ASP.NET的10大对比!
Dec 24 PHP
PHP实现原比例生成缩略图的方法
Feb 03 PHP
全新Mac配置PHP开发环境教程
Feb 03 PHP
golang与php实现计算两个经纬度之间距离的方法
Jul 22 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
Mar 08 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
Oct 13 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正确配置mysql(apache环境)
2011/08/28 PHP
php在程序中将网页生成word文档并提供下载的代码
2012/10/09 PHP
php中通过curl检测页面是否被百度收录
2013/09/27 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
thinkPHP模板引擎用法示例
2016/12/08 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
document.getElementById为空或不是对象的解决方法
2010/01/24 Javascript
js操作二级联动实现代码
2010/07/27 Javascript
基于JQuery的简单实现折叠菜单代码
2010/09/15 Javascript
window.onresize 多次触发的解决方法
2013/11/08 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
2014/05/05 Javascript
js中this的用法实例分析
2015/01/10 Javascript
JavaScript判断微信浏览器实例代码
2016/06/13 Javascript
jQuery学习笔记之回调函数
2016/08/15 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
JS弹出窗口的运用与技巧大全
2016/11/01 Javascript
Angularjs中数据绑定的实例详解
2017/08/25 Javascript
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
详解JQuery基础动画操作
2019/04/12 jQuery
微信小游戏之使用three.js 绘制一个旋转的三角形
2019/06/10 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
js实现聊天对话框
2020/02/08 Javascript
在Python的Flask框架中实现单元测试的教程
2015/04/20 Python
python使用pymysql实现操作mysql
2016/09/13 Python
Python排序算法之选择排序定义与用法示例
2018/04/29 Python
计算机二级python学习教程(3) python语言基本数据类型
2019/05/16 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
Python中的特殊方法以及应用详解
2020/09/20 Python
python爬取2021猫眼票房字体加密实例
2021/02/19 Python
Linux面试经常问的文件系统操作命令
2016/10/04 面试题
公务员党员评议表自我鉴定
2014/09/14 职场文书
生日赠语
2015/06/23 职场文书
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle
css height属性中的calc方法详解
2021/06/03 HTML / CSS