摘要:一提到优化,首先大家会想到数据库,想到索引想到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、使用引用传参&
通过参数地址引用的方式,实现函数多个返回值,这比按值传递效率高
只需要使用一个&符号(一般在遍历的时候用的多)