本文目錄一覽:
如何對php代碼進行優化
在執行某段代碼的之前獲得microtime時間,然後在結束的時候再獲取一次,兩次時間相差即可。你也可以使用zend studio 的調 試功能,它可以標出程序的執行時間。
php代碼優化及php相關問題總結
1,在函數中,傳遞數組時
使用
return
比使用
global
要高效
比如
function
userloginfo($usertemp){
$detail=explode(“|”,$usertemp);
return
$detail;
}
$login=userloginfo($userdb);
比
function
userloginfo($usertemp){
global
$detail;
$detail=explode(“|”,$usertemp);
}
userloginfo($userdb);
要高效
2,(這個代碼用於得到程序目錄對應的網址,推薦使用)
$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);
要高效
3,在循環中判斷時,數值判斷使用恆等要比等於高效
$a=2;$b=2;
比如
if($a==$b)$c=$a;
比
if($a===$b)$c=$a;
高效
4,mysql
查詢時盡量使用where
in
少用
limit
limit查多記錄的前幾條,
速度很快,
但是查詢最面幾條就會慢
使用in
.在查詢連續性記錄,非常快,
非連續性記錄第一次運行會稍微慢一點,但是之後將比較快!
5,NT服務器數據操作穩定性不及unix/linux
6,輸出前使用盡量使用
ob_start();
可以加快輸出速度,適用NT或nuli/linux,對unlix類服務器
如果使用
ob_start(‘ob_gzhandler’);輸出效率將更高
7,判斷的時候盡量使用if($a==他的值)
否定的時候盡量使用if(empty($a)),因為這樣程序運行更快速
8,使用不等時
!=
與
效率相當
9,個人經驗得
使用
$a=”11111111111111″;
的效率和
$a=’11111111111111′;
相當.並不象書本說的相差很大
10,使用規範的SQL語句,
會有利於MySQL的解析
11,使用
if($online){
$online1=$online;
setcookie(‘online1’,$online,$cookietime,$ckpath,$ckdomain,$secure);
}
COOKIE將馬上生效
使用
if($online)
setcookie(‘online1’,$online,$cookietime,$ckpath,$ckdomain,$secure);
COOKIE需要再刷新一次才能生效
12,使用
$handle=fopen($filename,wb);
flock($handle,LOCK_SH);
$filedata=fread($handle,filesize($filename));
fclose($handle);
比
file($filename);
無論在速度還是穩定上都要優秀
13,截斷字符串優化函數(可避免?字符出現)
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);
14,程序中屏蔽大小寫
for
($asc=65;$asc=90;$asc++)
{
//strtolower()
此函數在一些服務器會產生亂碼!
if
(strrpos($regname,chr($asc))!==false)
{
$error=”為了避免用戶名混亂,用戶名中禁止使用大寫字母,請使用小寫字母”;
$reg_check=0;
}
}
15,不使用
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”,”\nofstar:”,$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調用即可。代碼格式如下: 四、盡量使用靜態頁面和上面說的道理一樣,大家都知道,PHP等程序實現了網站的動態交互,如留言板等。但這類程序必須先由服務器執行處理,再生成靜態頁面,然後用戶才能看到。這就必須小高服務器資源。如果網站訪問人數多,服務器配置又不夠好,很容易就造成網站速度緩慢甚至無法訪問。所以如果沒有必要,請盡量使用靜態頁面。 五.網站統計代碼應獨立放置在網頁的最下方之所以放置最下方是因為如果網站統計代碼出現故障無妨加載時,會有幾十毫秒的延遲,這時如果你將統計代碼放置網頁前面,就會影響網站加載速度。導致頁面很長時間才能訪問。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/230456.html