10个php函数实用却不常见


Posted in PHP onOctober 13, 2015

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”;

10个php函数实用却不常见,快点收藏起来吧

PHP 相关文章推荐
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
Oct 09 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
Jun 27 PHP
PHP提交表单失败后如何保留已经填写的信息
Jun 20 PHP
php实现Mysql简易操作类
Oct 11 PHP
详解PHP序列化反序列化的方法
Oct 27 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
Dec 17 PHP
详解PHP原生DOM对象操作XML的方法
Oct 17 PHP
关于PHP中字符串与多进制转换函数的实例代码
Nov 03 PHP
PHP 配置后台登录以及模板引入
Jan 24 PHP
php实现base64图片上传方式实例代码
Feb 22 PHP
用PHP的反射实现委托模式的讲解
Mar 22 PHP
PHP获取学生成绩的方法
Nov 17 PHP
PHP实现连接设备、通讯和发送命令的方法
Oct 13 #PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
Oct 13 #PHP
JavaScript与HTML结合的基本使用方法整理
Oct 12 #PHP
apache和PHP如何整合在一起
Oct 12 #PHP
php实现Mysql简易操作类
Oct 11 #PHP
php实现微信公众平台账号自定义菜单类
Oct 11 #PHP
php实现微信公众号无限群发
Oct 11 #PHP
You might like
《超神学院》霸气归来, 天使彦上演维多利亚的秘密
2020/03/02 国漫
php 网页游戏开发入门教程一(webgame+design)
2009/10/26 PHP
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
php5 non-thread-safe和thread-safe这两个版本的区别分析
2010/03/13 PHP
php 安全过滤函数代码
2011/05/07 PHP
php设计模式 Singleton(单例模式)
2011/06/26 PHP
PHP模块化安装教程
2016/06/01 PHP
利用php的ob缓存机制实现页面静态化方法
2017/07/09 PHP
php 算法之实现相对路径的实例
2017/10/17 PHP
Yii2框架自定义类统一处理url操作示例
2019/05/25 PHP
Javascript this指针
2009/07/30 Javascript
javascript 必知必会之closure
2009/09/21 Javascript
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
使用js 设置url参数
2013/07/08 Javascript
使用javascript做的一个随机点名程序
2014/02/13 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
深入探究node之Transform
2017/07/20 Javascript
js推箱子小游戏步骤代码解析
2018/01/10 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
2018/09/03 Javascript
Vue动态加载异步组件的方法
2018/11/21 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
2019/09/02 Javascript
浅析js实现网页截图的两种方式
2019/11/01 Javascript
微信小程序实现同时上传多张图片
2020/02/03 Javascript
浅析 Vue 3.0 的组装式 API(一)
2020/08/31 Javascript
python私有属性和方法实例分析
2015/01/15 Python
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
python 批量修改/替换数据的实例
2018/07/25 Python
python os模块简单应用示例
2019/05/23 Python
python多进程重复加载的解决方式
2019/12/13 Python
一文轻松掌握python语言命名规范规则
2020/06/18 Python
Python如何读写字节数据
2020/08/05 Python
护士自荐信
2013/10/25 职场文书
教师个人发展总结
2015/02/11 职场文书
2015年效能监察工作总结
2015/04/23 职场文书
2015秋季小学开学寄语
2015/05/27 职场文书
使用Redis实现实时排行榜功能
2021/07/02 Redis