PHP 编程技巧与优化
- 1、 尽量采用大量的PHP内置函数。
- 2、 使用
echo
代替print
,并且使用echo
的多重参数(译注:指用逗号而不是句点)代替字符串连接 - 3、 用单引号代替双引号来包含字符串,这样做会更快一些。
- 4、
$row['id']
的效率是$row[id]
的7倍。 - 5、 在包含文件时使用完整路径,解析操作系统路径所需的时间会更少。
- 6、 如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用
$_SERVER['REQUEST_TIME']
要好于time()
- 7、 函数代替正则表达式完成相同功能,
str_replace
函数比preg_replace
函数快,但strtr
函数的效率是str_replace
函数的四倍。 - 8、 尽量不要在for循环中使用函数,比如
for ($x=0; $x < count($array); $x++)
每循环一次都会调用count()函数。 - 9、 Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍。尽量多用静态HTML页面,少用脚本。
- 10、如果能将类的方法定义成
static
,就尽量定义成static
,它的速度会提升将近4倍。 - 11、尽量使用
foreach
代替for/while
- 12、读取小文件使用
fread
,读取大文件使用file_get_contents
,特大的文件使用fseek
- 13、在验证 email 地址时使用
checkdnsrr()
函数验证域名是否存在,这个内置函数能够确认指定的域名能够解析成 IP 地址 - 14、使用
error_reporting(0)
函数来防止用户看到潜在的敏感错误信息。在理想情况下,发布服务器应该在 php.ini
里完全禁止。但是如果你用的是一个共享的 web 服务器的话,你没有自己的 php、ini 文件,那么这种情况下你最好的选择就是在所有脚本的第一行前加上 error_reporting(0)
- 15、在网数据库中存储很大的字符串之前使用
gzcompress()
和 gzuncompress()
来显式的压缩/解压字符串 - 16、完全理解"魔术引号"和 SQL 注入的危险性,最简单的防止sql注入的方法:在php、ini中将
magic_quotes
设置为On,使用mysql_real_escape_string()
函数转义 - 17、不要相信用户提交的数据,一定使用
htmlentities()
或 htmlspecialchars()
先进行转义 - 18、当执行变量
$i
的递增或递减时,$i++
会比++$i
慢一些。这种差异是PHP特有的,并不适用于其他语言 - 19、并不是事必面向对象(OOP),面向对象往往开销很大,每个方法和对象调用都会消耗很多内存
- 20、mod_zip可作为Apache模块,用来即时压缩你的数据,并可让数据传输量降低80%