在设计的 php 生成静态页面中,静态页面越来越多,在不断的执行生成 html 的过程中,效率越来越慢,所以优化 php 语句就变得刻不容缓了,先检查了自己之前写的 php 生成 html 的程序,原来就是直接的循环,没有附加任何的优化,先看一下夏日博客之前的 PHP 循环语句:
$stat = time(); for($i=1;$i<=10000;$i++){ $strTemp = $strTemp.""; } $end = time(); echo $end-$stat;
这个循环只是把 php 生成静态语句给简化来了,主要了解一下循环生成的效率时间,具体的生成 html 这里就不具体讲解了,可以参看以前夏日博客的文章,这里是使用 php 执行循环 10000 次,如果变成 10000 00 之后呢,循环的速度会越来越慢,echo 出来的秒数也会越来越大,最后的解决方法就是将这段 PHP 循环语句进行简单的改造,如下:
$stat = time(); $strTemp = ''; for($i=1;$i<=10000;$i++){ $strTemp .= ""; } $end = time(); echo $end-$stat;
再次运行,不需要一秒的时间,时间效率非常的快,通过两段代码的对比可以看出,第一段是在每执行一次循环再重新赋值,要赋值 10000 次,速度肯定会慢,而第二段代码则是通过 点 的符号将值直接连接成一个字符串,只进行一次赋值就可以了,所以效率很高,我们可以把后面的代码放在任何执行多次的循环语句中,比如 php 生成多条 html 的时候。
实现代码如下:
"; for ($i=1;$i<=10000000;$i++){} //为了实现有一定的时间差,所以用了一个FOR来消耗一些资源. $Etime=microtime(true);//获取程序执行结束的时间 //echo $Etime."
"; $Ttime=$Etime-$Stime;//计算差值 //echo $Ttime."
"; $str_total=var_export($Ttime,TRUE); if(substr_count($str_total,"E")){ //为了避免1.28746032715E-005这种结果的出现,做了一下处理. $float_total=floatval(substr($str_total,5)); $Ttime=$float_total/100000; } echo $Ttime.'秒'; ?>
百恒开发工程师在对相关函数进行介绍:
microtime() 函数返回当前 Unix 时间戳和微秒数。
var_export() 函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。
substr_count() 函数计算子串在字符串中出现的次数。
备注:南昌网站制作公司工程师提醒广大开发人员:$Stime=microtime(true);要放在页面的首要位置,$Etime=microtime(true);要放页面的未位置,否则计算不出时间.