在网上看了一些php优化的指南,里面提到:使用strtr 函数 比 str_replace快4倍。 本着探索的精神动手验证。
代码
代码如下 | 复制代码 |
$string='abcdefg'; set_time_limit(300);
$start= microtime(true); for($i= 0;$i< 10000000;$i++) { $str=str_replace('a','123',$string); }
echomicrotime(true)-$start,'<br />';
$start= microtime(true); for($i= 0;$i< 10000000;$i++) { $str=strtr($string, ['a'=>'123']); }
echomicrotime(true)-$start,'<br />'; |
平台(笔记本):win10 + i5 + 8G固态
环境1:php 5.6 nts +apache
测试条件: 10000000次循环
结果: str_replace :3.2446131706238 秒
strtr: 36.379708051682 秒
环境2:php 7.0 nts +apache
测试条件: 10000000次循环
结果: str_replace :9.3426380157471秒
strtr: 9.3660399913788秒
环境3:php 5.6 nts + nginx
测试条件: 10000000次循环
结果: str_replace :3.2784769535065 秒
strtr: 35.701732158661 秒
环境4:php 7.0nts +nginx
测试条件: 10000000次循环
结果: str_replace :9.5572259426117 秒
strtr: 9.4987349510193 秒
意外发现, 5.6版本 str_replace 比 strtr 效率高10+倍, 7.0版本效率基本相同, 但5.6的 str_replace 竟比 7.0高 3倍
ps:以上测试,每个环境都测试了3+次,结果取平均值
以上这篇php中 strtr 和 str_replace 的效率问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持本网站。
PHP的使用在生活中越来越受大家的重视,今天文章就给大家介绍个实例:PHP简单读取xml文件的方法,读取程序,下面我们具体来看看。本文实例讲述了PHP简单读取xml文件的方法。分享给大家供大家参考,具体如下:
我将软件版本更新中的版本号等数据信息存放在xml文件中,使用时将版本信息读取出来。
xml文件内容如下:
下面是PHP如何读取xml文件
$doc=newDOMDocument();
$filepath=$_SERVER['DOCUMENT_ROOT']."/upload/versionpc/ios.xml";//xml文件路径
$doc->load($filepath);
$books=$doc->getElementsByTagName("updataMessages");
foreach($booksas$book)
{
$versions=$book->getElementsByTagName("version");
$version=$versions->item(0)->nodeValue;
$newmsgs=$book->getElementsByTagName("newmsg");
$newmsg=$newmsgs->item(0)->nodeValue;
if($version2==$version)
{
$return=array(
"status"=>0,
"msg"=>"success"
);
}
else
{
$return=array(
"status"=>2,
"msg"=>"have new version",
"data"=>$newmsg
);
}
}