38条PHP编码优化加速技巧
1. 尽量采用大量的PHP内置函数。
2. echo 比 print 快。
3. 不要把方法细分得过多,仔细想想你真正打算重用的是哪些代码?
4. 在执行for循环之前确定最大循环数,不要每循环一次都计算最大值。
5. 注销那些不用的变量尤其是大数组,以便释放内存。
6. 并非要用类实现所有的数据结构,数组也很有用。
7. $row['id']的效率是$row[id]的7倍。
8. 在包含文件时使用完整路径,解析操作系统路径所需的时间会更少。
9. 如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用$_SERVER[‘REQUEST_TIME’]要好于time()。
10. 检查是否能用strncasecmp,strpbrk,stripos函数代替正则表达式完成相同功能。
11. str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍。
12. 如果一个字符串替换函数,可接受数组或字符作为参数,并且参数长度不太长,那么可以考虑额外写一段替换代码,使得每次传递参数是一个字符,而不是只写一行代码接受数组作为查询和替换的参数。
13. 使用选择分支语句(译注:即switch case)好于使用多个if,else if语句。
14. 用@屏蔽错误消息的做法非常低效。
15. 打开apache的mod_deflate模块。
16. 数据库连接当使用完毕时应关掉。
18. 错误消息代价昂贵。
19. 尽量不要在for循环中使用函数,比如for ($x=0; $x prop++)要比递增一个局部变量慢3倍。
23. 递增一个未预定义的局部变量要比递增一个预定义的局部变量慢9至10倍。
24. 仅定义一个局部变量而没在函数中调用它,同样会减慢速度(其程度相当于递增一个局部变量)。PHP大概会检查看是否存在全局变量。
25. 方法调用看来与类中定义的方法的数量无关,因为我(在测试方法之前和之后都)添加了10个方法,但性能上没有变化。
26. 派生类中的方法运行起来要快于在基类中定义的同样的方法。
27. 调用带有一个参数的空函数,其花费的时间相当于执行7至8次的局部变量递增操作。类似的方法调用所花费的时间接近于15次的局部变量递增操作。
28. 用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会。当然,只有当你不需要在字符串中包含变量时才可以这么做。
29. 用echo 输出多个字符串时,用逗号代替句点来分隔字符串,速度更快。
30. Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍。尽量多用静态HTML页面,少用脚本。
31. 除非
相关文档:
<?php
/**
by lenush;
*/
class Tree
{
var $data = array();
var $child = array(-1=>array());
var $layer = array(-1=>-1);
var $parent &nbs ......
; 本文并非是对英文版 php.ini 的简单翻译,而是参考了众多资料以后,结合自己的理解,增加了许多内容,
; 包括在原有 php.ini 基础上增加了一些实用模块的配置说明,同时对文件内容的安排进行了调整。
; 由于作者不喜欢 no-free 的玩意儿,所以删除了除 MySQL 和 PostgreSQL 以外的其他数据库模块配置选项。
;;;;;;;;;; ......
首先创建将传输给用户的数据文件。这个文件可以有任何内容,不用担心,因为用户永远都看不到这个文件。我们考虑生成大量文本并写入到文件来创建此文件。例如下边的脚本将生成一个大约1500KB的文本文件。(暂只提供这个思路,具体略..)
<?php
/*=====http://hi.csdn.net/yinyiniao=====*/
$fp=fopen("cs.txt","w");
......
<?php
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=php100.xls");
/* echo "A1\t B1\t C1\n";
echo "A1\t B1\t C1\n";
echo "A1\t B1\t C1\n";
*/
?>
<!--*********************************************报表***************************************** ......
//将网址的参数转为变量,如:xxx.php?a=1&b=2,
//运行方法后,echo $a."|".$b, 结果:1|2
extract($_GET);
//unicode转utf8,如:中或 \u9865 转 成 中文
function unescape($str) {
$str = rawurldecode($str);
preg_match_all("/(?:%u.{4})|&#x.{4};|&am ......