php代碼優化
1. php優化代碼
就兩行,有必要優化嗎,要麼就改為一行吧:
<?php
echo$_GET['s'];
?>
2. 如何正確實現PHP網站優化
1、使用GZip
在每一個PHP頁面頂部加入以下代碼:
<?php ob_start("ob_gzhandler");?>
使用該代碼後伺服器會壓縮所有需要傳送到客戶端的代碼,並在瀏覽器中進行解壓,從而使網站運行速度加快。這一功能還可以節省網站空間的流量。
2、不要濫用Javascript和Ajax
只在需要的時候才使用Javascript和Ajax,千萬不要濫用它們。有些網站使用了太多不必要的Ajax動畫,或使用Ajax來載入無用的部分。這樣一來Javascript文件就會變得很大,而實際上卻有很多其他方案來實現這些功能。
3、圖片、頭文件和HTTP請求
網頁所引用的圖片、外部文件以及CSS樣式文件越多,網頁就載入得越慢。花些時間把圖片文件和其他外部文件縮小一些吧,使它們能更快地被載入。此外,每一次載入圖片和外部文件時都會產生一個HTTP請求,這一定會拖延載入時間。
4、限制Mysql查詢次數
對資料庫的每一次請求都會使網頁的載入速度減緩一些。網路開發者允許很難控制這一點,但是在一些細節的地方是可以進行優化的。比如,在選擇資料庫記錄時,不要使用以下代碼:
SELECT * FROM database
而是使用:
SELECT id, name, date, author, etc, blah, blah FROM database
這會消耗更少的查詢時間並減少伺服器的負載。
5、.php擴展名
有些人認為將JS文件保存為filename.js.php以及將CSS文件保存為stylesheet.css.php會讓載入的時間減少些,但我並沒有察覺到這其中的差別。當然,如果你網站的速度變得很慢,你可以試試這個方法。當然,你需要在每個PHP文件中用include()去載入這些文件。
3. PHP代碼優化的問題
其實你這個是執行速度最快的,只是些的時候看起來麻煩而已,一般人可能這樣寫:
<?php
$sqlzd='id,xxxingming,xxdi,xxlianxifangshi,xxzhanghao,xxjiuzhanghao,xxsulv,xxshigongbiaoshi,xxchanpinmingchen,xxyewushuxing,xxdianshizhanghao,xxpaidanriqi,xxbeizhu,xxcaozuoleixing,xxgongdanhao,xxjierufangshi,xxziyuanleixing,xxzwzu,xxzwrenyuan';
$sql="INSERTINTOzaitugongdan(".$sqlzd.")VALUES(";
for($i=o;$i<=17;$i++)
$sql.="'".addslashes(mb_convert_encoding($row[i],'UTF-8','GBK'))."',";
//刪除最後一個多餘的逗號,再添加反括弧
$sql=substr($sql,0,length($sql)-1).")";
$link->query($sql);
?>
4. php做優化包括哪些內容
1:單引號代替雙引號,雙引號會去找變數。
2:方法定義為static,性能提升4倍。
3:$arr['id']的性能是$arr[id]的7倍。
4:echo性能快,盡量使用echo $a,$b,$c而非echo $a.$b.$c。
5:循環之前確定循環次數,盡量用foreach。
6:注銷不使用的變數,節省內存。
7:盡量不使用魔法函數:__get、__set等。
8:require_once()會檢查是否載入,消耗內存。
9:include文件時使用絕對路徑,省去查找的時間。
10:腳本開始執行時間$_SERVER[『REQUEST_TIME』]要好於time()。
11:正則效率低,用函數代替。
12:str_replace函數比preg_replace函數快,但strtr函數的效率是str_replace函數的四倍。
13:接收客串的效率比接收數組的效率高。
14:switch case好於多個if else。
15:用@屏蔽錯誤消息的方法很低效。
16:打開apache的mod_deflate模塊,可以提高網頁的瀏覽速度。
17:資料庫連接當使用完畢時應關掉,不要用長連接。
18:錯誤消息代價昂貴。
19:在方法中遞增局部變數,速度是最快的。幾乎與在函數中調用局部變數的速度相當。
20:遞增一個全局變數要比遞增一個局部變數慢2倍。
21:遞增一個對象屬性(如:$this->prop++)要比遞增一個局部變數慢3倍。
22:遞增一個未預定義的局部變數要比遞增一個預定義的局部變數慢9至10倍。
23:僅定義一個局部變數而沒在函數中調用它,同樣會減慢速度(其程度相當於遞增一個局部變數)。PHP大概會檢查看是否存在全局變數。
24:方法調用看來與類中定義的方法的數量無關,因為我(在測試方法之前和之後都)添加了10個方法,但性能上沒有變化。
25:派生類中的方法運行起來要快於在基類中定義的同樣的方法。
26:調用帶有一個參數的空函數,其花費的時間相當於執行7至8次的局部變數遞增操作。類似的方法調用所花費的時間接近於15次的局部變數遞增操作。
27:Apache解析一個PHP腳本的時間要比解析一個靜態HTML頁面慢2至10倍。盡量多用靜態HTML頁面,少用腳本。
28:盡量做緩存,可使用memcached。memcached是一款高性能的內存對象緩存系統,可用來加速動態Web應用程序,減輕資料庫負載。對運算碼 (OP code)的緩存很有用,使得腳本不必為每個請求做重新編譯。
29:當操作字元串並需要檢驗其長度是否滿足某種要求時,你想當然地會使用strlen()函數。此函數執行起來相當快,因為它不做任何計算,只返回在zval 結構(C的內置數據結構,用於存儲PHP變數)中存儲的已知字元串長度。但是,由於strlen()是函數,多多少少會有些慢,因為函數調用會經過諸多步驟,如字母小寫化(譯註:指函數名小寫化,PHP不區分函數名大小寫)、哈希查找,會跟隨被調用的函數一起執行。在某些情況下,你可以使用isset() 技巧加速執行你的代碼。
30:當執行變數$i的遞增或遞減時,$i++會比++$i慢一些。這種差異是PHP特有的,並不適用於其他語言,所以請不要修改你的C或Java代碼並指望它們能立即變快,沒用的。++$i更快是因為它只需要3條指令(opcodes),$i++則需要4條指令。後置遞增實際上會產生一個臨時變數,這個臨時變數隨後被遞增。而前置遞增直接在原值上遞增。這是最優化處理的一種,正如Zend的PHP優化器所作的那樣。牢記這個優化處理不失為一個好主意,因為並不是所有的指令優化器都會做同樣的優化處理,並且存在大量沒有裝配指令優化器的互聯網服務提供商(ISPs)和伺服器。
31:並不是事必面向對象(OOP),面向對象往往開銷很大,每個方法和對象調用都會消耗很多內存。
32:盡量採用大量的PHP內置函數。
33:如果在代碼中存在大量耗時的函數,你可以考慮用C擴展的方式實現它們。
34:mod_zip可作為Apache模塊,用來即時壓縮你的數據,並可讓數據傳輸量降低80%。
35:在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情況下,盡量用 file_get_contents,因為他的效率高得多!但是要注意file_get_contents在打開一個URL文件時候的PHP版本問題。
36:盡量的少進行文件操作,雖然PHP的文件操作效率也不低的。
37:優化Select SQL語句,在可能的情況下盡量少的進行Insert、Update操作(在update上,我被惡批過)。
38:循環內部不要聲明變數,尤其是大變數:對象。
39:多維數組盡量不要循環嵌套賦值。
40:在可以用PHP內部字元串操作函數的情況下,不要用正則表達式。
41:foreach效率更高,盡量用foreach代替while和for循環。
42:用i+=1代替i=i+1。符合c/c++的習慣,效率還高。
43:對global變數,應該用完就unset()掉。
5. Php網站如何優化才好
優化網站,對於PHP來說主要有以下幾點
代碼分析,找出耗時長或者卡頓的代碼加以優化。
循環太多:循環太多就考慮如何去掉循環,或者優化循環體結構,包括每次提前計算好變數,不在循環體內做過多運算。
IO瓶頸:就是sql語句有缺陷,或者磁碟讀寫過慢,網路帶寬過低。sql優化包括索引優化,啟用redis或memcache,分表分庫等等優先順序從前到後,網上都有很多教程。磁碟讀寫慢,就要考慮上固態硬碟。帶寬就要聯系網路運營商解決
精簡前端頁面。現在頁面功能越來越復雜,卡頓不一定是後台,前端出現問題也很多。包括頁面內容太多(適當縮減一部分網頁內容),js,css,圖片太大(對js,css進行壓縮,去掉冗餘代碼等。使用壓縮格式的圖片,如jpg格式控制圖片大小(盡量在100K甚至10K以內)啟用網頁緩存等)
深度優化性能,包括採用更快的PHP(PHP7.2),更快的伺服器(Linux+nginx),更快的mysql(讀寫分離)等等。
6. php如何將1000行代碼優化成100行
如何壓縮html代碼,讓html文件縮小優化
一、將table改為div布局 - TOP
盡量將table標簽布局html重構div布局,可以節約至少40%的代碼量。由於div代碼少於table布局的html網頁,所以搜索引擎索引權重也優於table布局的html網頁。
二、縮減精簡div、span、ul li等系列標簽 - TOP
布局DIV+CSS網頁時候,我們有時候可以節約一些DIV布局代碼,減少代碼量。
如下案例代碼:
<divclass="divcss5">
<ul>
<li>CSS學習去DIVCSS5li>
<li>我愛DIVCSS5li>
<li>DIV+CSS學習去DIVCSS5li>
ul>
div>
可以改為:
<ulclass="divcss5">
<li>CSS學習去DIVCSS5li>
<li>我愛DIVCSS5li>
<li>DIV+CSS學習去DIVCSS5li>
ul>
這樣可以節約一對div標簽,從而減少html代碼量,起到壓縮html作用。這樣直接對ul命名css樣式類,可以區別在一個頁面不同地方使用ul li列表標簽。
三、刪除多餘空格 - TOP
刪除多餘空格換行,可以有效地壓縮html代碼佔用位元組,一般在開發完成後可以對html中代碼進行刪除換行和空格內容。
可以藉助於DW軟體進行批量刪除html內標簽之間空格
如:
<divclass="divcss5">
<div ...>div>
div>
可以刪除空格與換行後:
<divclass="divcss5"><div ...>div>div>
這樣即可節約空格和換行所佔位元組。
注意的是,網頁發布版的可以藉助於DW進行刪除多餘空格與空行。如果要再編輯,再到DW軟體進行代碼格式化排版即可。
四、表格類型布局時候適當使用table替代div布局 - TOP
如果是本身是表格數據列表排版,我們最好選擇table,因為表格布局使用table優於div布局,使用table布局卻比div布局節約html標簽代碼和節約css樣式。
如下圖表格數據類型,建議採用TABLE標簽+CSS樣式布局
類似這種列表型table表格,推薦使用table標簽布局
五、網頁GZIP壓縮 - TOP
7. 如何對PHP代碼進行優化以提高網站訪問速度
一、不要將整個頁面放到一個table中雖然現在已經很少人使用table來布局,但我覺得還是有必要提一下,原來有些站長為了追求頁面的整齊劃一,將整個網站頁面放入到一個table中,使用表格來布局,如果這樣做顯然會拖慢整個網頁的載入速度。因為table中的內容必須要等到網頁中所有內容全部載入完才會顯示出來,所以如果其中一部分載入很慢或載入不了,勢必會造成網頁的載入變慢。最好是使用div+css的方式來布局頁面,如果要使用table也不要將所有網頁內容加入到一個table中。 一.記得幫頁面減肥我們瀏覽網頁實際上是將虛擬主機中的網頁內容下載到本地硬碟,再用瀏覽器解釋查看的。下載網頁的快慢在顯示速度上佔了很大比重,所以,網頁本身 所佔的空間越小,那麼瀏覽速度就會越快。這就要求在做網頁的時候遵循一切從簡的原則,如:不要使用太大的Flash動畫、圖片等資源。干凈、簡潔的頁面會 給人一種思路明朗的感覺。 二、PHP等文件訪問通過.js調用。 如果在靜態頁面中需要嵌入動態數據,我們在進行PHP網站優化和其他方法優化時應該注意的是,如果你要在靜態的HTML頁面里嵌入動態的數據,而這些動態的數據是由PHP程序來提供的話,這樣的話,每次有一個人訪問你的網站,伺服器就要執行並處理一次PHP文件,從資料庫抽取相應的數據,再輸出到網頁,如果同時有幾萬人訪問,無疑會是伺服器不堪重負。 所以最好是將數據動態生成到.js文件中,然後再首頁通過< SCRIPT > < /SCRIPT> 這樣的代碼來調用js文件。如此一來,動態數據的顯示就在客戶端的瀏覽器中進行,大大降低了伺服器資源的消耗,網站速度自然會加快。 三.使用iframe嵌套廣告代碼。 如果你在網站上插入一些廣告,又不想因此拖慢網站速度,那使用iframe比較好。只要將這些廣告代碼整理到一個獨立的頁面中,使用iframe調用即可。代碼格式如下: 四、盡量使用靜態頁面和上面說的道理一樣,大家都知道,PHP等程序實現了網站的動態交互,如留言板等。但這類程序必須先由伺服器執行處理,再生成靜態頁面,然後用戶才能看到。這就必須小高伺服器資源。如果網站訪問人數多,伺服器配置又不夠好,很容易就造成網站速度緩慢甚至無法訪問。所以如果沒有必要,請盡量使用靜態頁面。 五.網站統計代碼應獨立放置在網頁的最下方之所以放置最下方是因為如果網站統計代碼出現故障無妨載入時,會有幾十毫秒的延遲,這時如果你將統計代碼放置網頁前面,就會影響網站載入速度。導致頁面很長時間才能訪問。
8. 讓PHP網站跑的更快 如何優化PHP
php(做為現在的主流開發語言)是一種執行起來非常迅速的編程語言,但是比起僅僅優化代碼來說仍然值得優化php(做為現在的主流開發語言)本身。
本文我們將根據一些實效闡述為什麼優化php(做為現在的主流開發語言)本身要比優化代碼來的更貼切,以及為什麼需要理解根據php(做為現在的主流開發語言)在你的伺服器上其他相關子系統的表現找出瓶頸並修復之。與此同時,我們也提到了如何優化您的php(做為現在的主流開發語言)代碼來讓他們擁有更快的執行速度。
獲得高性能
當我們談及好的性能,往往不僅僅是指您的php(做為現在的主流開發語言)代碼執行起來有多快。性能是一套在可量化評測和速度之間取出的平衡。僅僅依靠使用更少資源的代碼執行起來也許比在高速緩存中之行的代碼更慢,並且相同的一組(在高速緩沖中執行的)代碼可以在同時並發執行在一台Web伺服器上。
在下面的例子中,A.php(做為現在的主流開發語言)算作一位盡可能跑得快的賽跑選手,而B.php(做為現在的主流開發語言)是一個幾乎可以以同一慢速永遠跑下去的馬拉松選手。輕負荷情況下,A.php(做為現在的主流開發語言)可以充分的快,但是當流量增加後,B.php(做為現在的主流開發語言)的性能表現將僅僅降低一點點而A.php(做為現在的主流開發語言)會垮掉。
讓我們來通過一個事實來驗證此說法更深遠的本質意義。假設我們需要讀取一個250K的文件並生成一個關於此文件的HTML概要。我們寫了兩個腳本來做同樣一件事:hare.php(做為現在的主流開發語言)將一次性讀取整個文件到內存中,然後一步執行到位;而tortoise.php(做為現在的主流開發語言)每次只讀取文件的一行,並且決不超過內容容量。結果Tortoise.php(做為現在的主流開發語言)因為多次讀寫需要更多的系統回應而慢得多。"
程序每執行一次,hare.php(做為現在的主流開發語言)需要0.04秒CPU執行時間和10Mb的內存,而tortoise.php(做為現在的主流開發語言)需要0.06秒CPU執行時間和5Mb的內存。伺服器共有100Mb實際內存容量並且其CPU有99%是空閑的。我們同時假定執行這樣一個簡單事件不產生內存碎片。
當有10各程序並發執行時,hare.php(做為現在的主流開發語言)將發生內存溢出(10 ×10 = 100)。與此同時,tortoise.php(做為現在的主流開發語言)仍將有50Mb空餘內存可用!11個程序並發執行將使hare.php(做為現在的主流開發語言)徹底「潰敗」因為它開始需要使用虛擬內存——執行速度有可能降低到其常規速度的一半以下;而且現在每一個單獨程序進程需要0.08秒CPU執行時間。而此期間,tortoise.php(做為現在的主流開發語言)仍舊運行在其常規CPU執行時間——0.06秒!
以下表格中,執行得更快的php(做為現在的主流開發語言)腳本使用粗體區分開來:
------------------------------------------------------------------------------------------
| 連接數 | 每執行1次HTTP請求所需CPU執行時間(秒)| 每執行10次HTTP請求所需CPU執行時間(秒)| 每執行11次HTTP請求所需CPU執行時間(秒)|
------------------------------------------------------------------------------------------
| hare.php(做為現在的主流開發語言) | 0.04 | 0.04 | 0.88(內存溢出) |
------------------------------------------------------------------------------------------
| tortoise.php(做為現在的主流開發語言) | 0.06 | 0.60 | 0.66 |
------------------------------------------------------------------------------------------
如您在上例中看到的,獲得更好的性能不再僅僅是寫出執行起來更快的php(做為現在的主流開發語言)程序。高性能php(做為現在的主流開發語言)表現需要對底層硬體知識以及操作系統、軟體支持如Web伺服器、資料庫等有一個良好認識和理解。
瓶頸
以上兩個例子讓我們看到了(性能)下降的瓶頸所在。當擁有無限大容量的內存時,hare.php(做為現在的主流開發語言)的確是始終比tortoise.php(做為現在的主流開發語言)快。但是,僅僅認為內存是php(做為現在的主流開發語言)整體性能的瓶頸所在顯得過於單純——實際上遠不止這些:
(a) 網路
你的網路有可能是最大的瓶頸所在。如果你有10M的帶寬——最多你只能獲得1M/秒的傳輸速度。如果假設每個php(做為現在的主流開發語言)頁為30k,那麼每秒僅僅只傳輸33頁就將使你的網路帶寬達到飽和。更多導致瓶頸產生的因素包括頻繁訪問低速DNS,或者網路設備僅能獲得十分有限的存儲。
(b) CPU
如果你監視一下你的CPU負荷情況,發送一個純靜態HTML頁面並不會增加CPU負擔——就像我們以上提到的,此時瓶頸在於網路。當然啦,對於由php(做為現在的主流開發語言)生成的復雜動態頁面,你的CPU速度自然將成為限制因素之一。擁有包含多個CPU的伺服器或者一個伺服器陣列將減輕因CPU帶來的影響。
9. PHP環境php代碼如何優化,sql怎麼優化
1.在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情況下,盡量用 file_get_contents,因為他的效率高得多!但是要注意file_get_contents在打開一個URL文件時候的PHP版本問題;
2.盡量的少進行文件操作,雖然PHP的文件操作效率也不低的;
3.優化Select SQL語句,在可能的情況下盡量少的進行Insert、Update操作(在update上,我被惡批過);
4.盡可能的使用PHP內部函數(但是我卻為了找個PHP裡面不存在的函數,浪費了本可以寫出一個自定義函數的時間,經驗問題啊!);
5.循環內部不要聲明變數,尤其是大變數:對象(這好像不只是PHP裡面要注意的問題吧?);
6.多維數組盡量不要循環嵌套賦值;
7.在可以用PHP內部字元串操作函數的情況下,不要用正則表達式;
8.foreach效率更高,盡量用foreach代替while和for循環;
9.用單引號替代雙引號引用字元串;
10.「用i =1代替i=i 1。符合c/c 的習慣,效率還高」;
11.對global變數,應該用完就unset()掉