PHP中鲜为人知的10个函数


Posted in PHP onFebruary 28, 2014

PHP里有非常丰富的内置函数,很多我们都用过,但仍有很多的函数我们大部分人都不熟悉,可它们却十分的有用。这篇文章里,我列举了一些鲜为人知但会让你眼睛一亮的PHP函数。

levenshtein()

你有没有经历过需要知道两个单词有多大的不同的时候,这个函数就是来帮你解决这个问题的。它能比较出两个字符串的不同程度。

用法:

<?php 
$str1 = "carrot"; 
$str2 = "carrrott"; 
echo levenshtein($str1, $str2); //Outputs 2 
?>

get_defined_vars()

这是一个在debug调试时非常有用的函数。这个函数返回一个多维数组,里面包含了所有定义过的变量。

用法:

<?php
print_r(get_defined_vars());
?>

php_check_syntax()

这个函数非常的有用,可以用来检查PHP的语法是否正确。出于技术上的原因,从PHP 5.05开始,这个函数被删除了。

用法:

<?php 
$error_message = ""; 
$filename = "./php_script.php"; 
if(!php_check_syntax($filename, &$error_message)) { 
echo "Errors were found in the file $filename: $error_message"; 
} else { 
echo "The file $filename contained no syntax errors"; 
} 
?>

ignore_user_abort()

这个函数用来拒绝浏览器端用户终止执行脚本的请求。正常情况下客户端的退出会导致服务器端脚本停止运行。

用法:

<?php
ignore_user_abort();
?>

highlight_string()

当你想把PHP代码显示到页面上时,highlight_string()函数就会显得非常有用。这个函数会把你提供的PHP代码用内置的PHP语法突出显示定义的颜色高亮显示。这个函数有两个参数,第一个参数是一个字符串,表示这个字符串需要被突出显示。第二个参数如果设置成TRUE,这个函数就会把高亮后的代码当成返回值返回。

用法:

<?php
highlight_string('<?php phpinfo(); ?>');
?>

highlight_file

这是一个非常有用的PHP函数,它能返回指定的PHP文件,并按照语法语义用高亮颜色突出显示文件内容。其中的突出显示的代码都是用HTML标记处理过的。

用法:

<?php
highlight_file("php_script.php");
?>

php_strip_whitespace

这个函数也跟前面的show_source()函数相似,但它会删除文件里的注释和空格符。

用法:

<?php
echo php_strip_whitespace("php_script.php");
?>

get_browser

这个函数会读取browscap.ini文件,返回浏览器兼容信息。

用法:

<?php
echo $_SERVER['HTTP_USER_AGENT'];
$browser = get_browser();
print_r($browser);
?>

memory_get_usage(),memory_get_peak_usage(),getrusage()

这些函数用来获取内存和CPU使用情况,memory_get_usage()函数返回内存使用量,memory_get_peak_usage()函数返回内存使用峰值,getrusage()返回CUP使用情况,在调试PHP代码性能时,这些函数会给你提供一些有用信息。但有一点请注意,在这些函数中Window上无效。

用法:

<?php 
echo "Initial: ".memory_get_usage()." bytes \n"; 
echo "Peak: ".memory_get_peak_usage()." bytes \n"; 
$data = getrusage(); 
echo "User time: ". 
($data['ru_utime.tv_sec'] + 
$data['ru_utime.tv_usec'] / 1000000); 
echo "System time: ". 
($data['ru_stime.tv_sec'] + 
$data['ru_stime.tv_usec'] / 1000000); 
?>

gzcompress(), gzuncompress()

这两个函数用来压缩和解压字符串数据。它们的压缩率能达到50% 左右。另外的函数 gzencode() 和 gzdecode() 也能达到类似结果,但使用了不同的压缩算法。

用法:

<?php 
$string = 
"Lorem ipsum dolor sit amet, consectetur 
adipiscing elit. Nunc ut elit id mi ultricies 
adipiscing. Nulla facilisi. Praesent pulvinar, 
sapien vel feugiat vestibulum, nulla dui pretium orci, 
non ultricies elit lacus quis ante. Lorem ipsum dolor 
sit amet, consectetur adipiscing elit. Aliquam 
pretium ullamcorper urna quis iaculis. Etiam ac massa 
sed turpis tempor luctus. Curabitur sed nibh eu elit 
mollis congue. Praesent ipsum diam, consectetur vitae 
ornare a, aliquam a nunc. In id magna pellentesque 
tellus posuere adipiscing. Sed non mi metus, at lacinia 
augue. Sed magna nisi, ornare in mollis in, mollis 
sed nunc. Etiam at justo in leo congue mollis. 
Nullam in neque eget metus hendrerit scelerisque 
eu non enim. Ut malesuada lacus eu nulla bibendum 
id euismod urna sodales. "; 
$compressed = gzcompress($string); 
$original = gzuncompress($compressed); 
?>

你是否也想到了还有其它很有用的函数?请在评论里分享出来!
PHP 相关文章推荐
PHP的宝库目录--PEAR
Oct 09 PHP
让你的网站首页自动选择语言转跳
Dec 06 PHP
三个类概括PHP的五种设计模式
Sep 05 PHP
PHP通过插入mysql数据来实现多机互锁实例
Nov 05 PHP
php魔术变量用法实例详解
Nov 13 PHP
php文件上传的两种实现方法
Apr 04 PHP
关于php中一些字符串总结
May 05 PHP
PHP两种实现无级递归分类的方法
Mar 02 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
Apr 20 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
Dec 18 PHP
apache集成php7.3.5的详细步骤
Jun 20 PHP
php使用gearman进行任务分发操作实例详解
Feb 26 PHP
php中调用其他系统http接口的方法说明
Feb 28 #PHP
PHP URL参数获取方式的四种例子
Feb 28 #PHP
php使用多个进程同时控制文件读写示例
Feb 28 #PHP
php使用curl抓取qq空间的访客信息示例
Feb 28 #PHP
php命名空间学习详解
Feb 27 #PHP
php读取excel文件示例分享(更新修改excel)
Feb 27 #PHP
php中的strpos使用示例
Feb 27 #PHP
You might like
Smarty结合Ajax实现无刷新留言本实例
2007/01/02 PHP
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
PHP容易被忽略而出错陷阱 数字与字符串比较
2011/11/10 PHP
PHP下打开phpMyAdmin出现403错误的问题解决方法
2013/05/23 PHP
php include类文件超时问题处理
2015/02/06 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
异步加载script的代码
2011/01/12 Javascript
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
分享一个自己写的简单的javascript分页组件
2015/02/15 Javascript
JS验证邮件地址格式方法小结
2015/12/01 Javascript
jQuery版本升级踩坑大全
2016/01/12 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
JavaScript标准对象_动力节点Java学院整理
2017/06/27 Javascript
node.js-v6新版安装具体步骤(分享)
2017/09/06 Javascript
JS运动特效之完美运动框架实例分析
2018/01/24 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
推荐一个基于Node.js的表单验证库
2019/02/15 Javascript
在vue项目中使用sass语法问题
2019/07/18 Javascript
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
2019/08/23 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
python读取浮点数和读取文本文件示例
2014/05/06 Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
2016/09/18 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
python之生产者消费者模型实现详解
2019/07/27 Python
Python-openCV读RGB通道图实例
2020/01/17 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
2020/06/15 Python
python openCV自制绘画板
2020/10/27 Python
Python中BeautifulSoup通过查找Id获取元素信息
2020/12/07 Python
夜大毕业自我鉴定
2013/10/11 职场文书
革命先烈的英雄事迹材料
2014/02/15 职场文书
小学美术兴趣小组活动总结
2014/07/07 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
SpringBoot整合minio快速入门教程(代码示例)
2022/04/03 Java/Android