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%