PHP优化建议

摘要:一提到优化,首先大家会想到数据库,想到索引想到redis等,其实还可以从代码的角度进行优化

1、少用正则表达式

str_replace函数要比preg_replace快很多,strtr函数又比str_replace快

2、字符替换

str_replace字符替换比正则替换preg_replace快,但是strtr又比str_replace快很多25%左右
正确判断是否需要替换,如果不管不顾就str_replace,这样即使没有替换这个函数也会为其参数进行内存分派,增加了时间
可以先用strpos查找(速度很快),然后在进行替换

3、获取脚本的执行时间

time()函数虽然写起来顺手但是并不建议使用,可以使用$_SERVER['REQUSET_TIME']
因为time()函数还要计算,而$_server是现成的,直接拿来就行

4、长字符串进行压缩

对于很长的字符串(图片进行了base64压缩存到数据库,虽然一直没理解为什么这样做不使用第三方存图片),可以使用gzcompress() 和 gzuncompress() 对容量大的字符串进行压缩和解压,再存入和取出数据库。

5、读取文件的内容

file_get_contents()会优于file()、fopen()、feof()、fgets()等一系列操作后获取文件内容的方式

6、echo输出

echo $a . 'one';
echo $a,'two';
使用第二种逗号代替点来输出多个,速度会更快一点
虽然echo是一种语言结构不是真正的函数,但是他可以吧逗号隔开的多个字符串当做“函数”参数传入,从而提高速度

7、纯php代码后面不适用结束标记

主要是为了防止意外在后面加入了空格或者换行符等,导致php输出这些空白,而脚本中此时并无输出的意图

8、使用++$i递增

++$i  三条指令
$i++  四条指令
第一种指令更少,所以速度快(仅适用于PHP)

9、使用绝对路径

include require
include_once  require_once
相比之下最优的是include require 
因为如果包含相对路径php会在Include_path 里面遍历查找文件,用绝对路径就会避免此类问题
尽量不要使用require_one和include_once包含文件,他们会多一个判断文件是否被引用的过程,能不用就不用(各种框架内部入口都是使用的include)

10、使用引用传参&

通过参数地址引用的方式,实现函数多个返回值,这比按值传递效率高
只需要使用一个&符号(一般在遍历的时候用的多)
评论