本文目录一览:
如何对php代码进行优化
在执行某段代码的之前获得microtime时间,然后在结束的时候再获取一次,两次时间相差即可。你也可以使用zend studio 的调试功能,它可以标出程序的执行时间。
php代码优化及php相关问题总结
- 在函数中,传递数组时,使用
return
比使用global
要高效。 比如:
比下面的要高效:function userloginfo($usertemp) { $detail = explode("|", $usertemp); return $detail; } $login = userloginfo($userdb);
function userloginfo($usertemp) { global $detail; $detail = explode("|", $usertemp); } userloginfo($userdb);
- 这个代码用于得到程序目录对应的网址,推荐使用:
这段代码比:$urlarray = explode('/', $HTTP_SERVER_VARS['REQUEST_URI']); $urlcount = count($urlarray); unset($urlarray[$urlcount-1]); $ofstarurl = 'http://'.$HTTP_SERVER_VARS['HTTP_HOST'].implode('/', $urlarray);
要高效。$pre_urlarray = explode('/', $HTTP_SERVER_VARS['HTTP_REFERER']); $pre_url = array_pop($pre_urlarray);
- 在循环中判断时,数值判断使用恒等要比等于高效。
比:$a = 2; $b = 2; if ($a == $b) $c = $a;
高效。if ($a === $b) $c = $a;
- MySQL 查询时尽量使用
where in
,少用limit
。limit
查多记录的前几条速度很快,但是查询最后几条就会慢。使用in
在查询连续性记录时非常快,非连续性记录第一次运行会稍微慢一点,但是之后将比较快! - NT 服务器数据操作稳定性不及 Unix/Linux。
- 输出前尽量使用
ob_start();
可以加快输出速度,适用于 NT 或 Unix/Linux,对 Unix 类服务器如果使用ob_start('ob_gzhandler');
输出效率将更高。 - 判断的时候尽量使用
if ($a == 它的值)
,否定的时候尽量使用if (empty($a))
,因为这样程序运行更快速。 - 使用不等时
!=
与< >
效率相当。 - 个人经验得使用
$a = "11111111111111";
的效率和$a = '11111111111111';
相当,并不象书本说的相差很大。 - 使用规范的 SQL 语句,会有利于 MySQL 的解析。
- 使用:
COOKIE 将马上生效。 使用:if ($online) { $online1 = $online; setcookie('online1', $online, $cookietime, $ckpath, $ckdomain, $secure); }
COOKIE 需要再刷新一次才能生效。if ($online) setcookie('online1', $online, $cookietime, $ckpath, $ckdomain, $secure);
- 使用:
比$handle = fopen($filename, "wb"); flock($handle, LOCK_SH); $filedata = fread($handle, filesize($filename)); fclose($handle);
file($filename);
无论在速度还是稳定上都要优秀。 - 截断字符串优化函数(可避免乱码字符出现):
比如:function substrs($content, $length) { if (strlen($content) > $length) { $num = 0; for ($i = 0; $i < $length - 3; $i++) { if (ord($content[$i]) > 127) $num++; } $num % 2 == 1 ? $content = substr($content, 0, $length - 4) : $content = substr($content, 0, $length - 3); $content .= '...'; } return $content; }
$newarray[1] = substrs($newarray[1], 25);
- 程序中屏蔽大小写:
for ($asc = 65; $asc <= 90; $asc++) { // strtolower() 此函数在一些服务器会产生乱码! if (strrpos($regname, chr($asc)) !== false) { $error = "为了避免用户名混乱,用户名中禁止使用大写字母,请使用小写字母"; $reg_check = 0; } }
- 不使用
file();
和fget();
(不稳定或速度慢)取一数组函数:
这个函数虽然代码比较多,不过在速度和稳定性上优势很大! 先写到这,以上完全个人的一点小结,不过正确性都经过反复测试,如果有朋友质疑,请先测试,再讨论,谢谢!function openfile($filename, $method = "rb") { $handle = @fopen($filename, $method); @flock($handle, LOCK_SH); @$filedata = fread($handle, filesize($filename)); @fclose($handle); $filedata = str_replace("\n", "\n", $filedata); $filedb = explode("ofstar:", $filedata); // array_pop($filedb); $count = count($filedb); if ($filedb[$count-1] == '') { unset($filedb[$count-1]); } return $filedb; }
如何对PHP代码进行优化以提高网站访问速度
一、不要将整个页面放到一个 table 中。虽然现在已经很少人使用 table 来布局,但我觉得还是有必要提一下,原来有些站长为了追求页面的整齐划一,将整个网站页面放入到一个 table 中,使用表格来布局,如果这样做显然会拖慢整个网页的加载速度。因为 table 中的内容必须要等到网页中所有内容全部加载完才会显示出来,所以如果其中一部分加载很慢或加载不了,势必会造成网页的加载变慢。最好是使用 div+css 的方式来布局页面,如果要使用 table 也不要将所有网页内容加入到一个 table 中。
二、记得帮页面减肥。我们浏览网页实际上是将虚拟主机中的网页内容下载到本地硬盘,再用浏览器解释查看的。下载网页的快慢在显示速度上占了很大比重,所以,网页本身所占的空间越小,那么浏览速度就会越快。这就要求在做网页的时候遵循一切从简的原则,如:不要使用太大的 Flash 动画、图片等资源。干净、简洁的页面会给人一种思路明朗的感觉。
三、PHP 等文件访问通过 .js 调用。如果在静态页面中需要嵌入动态数据,我们在进行 PHP 网站优化和其他方法优化时应该注意的是,如果你要在静态的 HTML 页面里嵌入动态的数据,而这些动态的数据是由 PHP 程序来提供的话,这样的话,每次有一个人访问你的网站,服务器就要执行并处理一次 PHP 文件,从数据库抽取相应的数据,再输出到网页,如果同时有几万人访问,无疑会是服务器不堪重负。所以最好是将数据动态生成到 .js 文件中,然后再首页通过 <script></script>
这样的代码来调用 js 文件。如此一来,动态数据的显示就在客户端的浏览器中进行,大大降低了服务器资源的消耗,网站速度自然会加快。
四、使用 iframe 嵌套广告代码。如果你在网站上插入一些广告,又不想因此拖慢网站速度,那使用 iframe 比较好。只要将这些广告代码整理到一个独立的页面中,使用 iframe 调用即可。代码格式如下:
<iframe src="广告页面地址" width="宽度" height="高度"></iframe>
五、尽量使用静态页面。大家都知道,PHP 等程序实现了网站的动态交互,如留言板等。但这类程序必须先由服务器执行处理,再生成静态页面,然后用户才能看到。这就必须消耗服务器资源。如果网站访问人数多,服务器配置又不够好,很容易就造成网站速度缓慢甚至无法访问。所以如果没有必要,请尽量使用静态页面。 六、网站统计代码应独立放置在网页的最下方。之所以放置最下方是因为如果网站统计代码出现故障无妨加载时,会有几十毫秒的延迟,这时如果你将统计代码放置网页前面,就会影响网站加载速度,导致页面很长时间才能访问。