php網站優化的6個基礎方法,如何提高php技術

本文目錄一覽:

如何正確實現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()去載入這些文件。

php有哪些優化技巧

優化的點有很多,看具體使用環境:

1、 用單引號代替雙引號來包含字元串,這樣做會更快一些。因為 PHP 會在雙引號包圍的 字元串中搜尋變數,單引號則不會,注意:只有 echo 能這麼做,它是一種可以把多個字元 串當作參數的「函數」(譯註:PHP 手冊中說 echo 是語言結構,不是真正的函數,故把函數 加上了雙引號)。

2、如果能將類的方法定義成 static,就盡量定義成 static,它的速度會提升將近 4 倍。

3、$row[‘id’] 的速度是$row[id]的 7 倍。

4、echo 比 print 快,並且使用 echo 的多重參數(譯註:指用逗號而不是句點)代替字元串 連接,比如 echo $str1,$str2。

5、在執行 for 循環之前確定最大循環數,不要每循環一次都計算最大值,最好運用 foreach 代替。

6、註銷那些不用的變數尤其是大數組,以便釋放內存。

7、盡量避免使用__get,__set,__autoload。

8、require_once()代價昂貴。

9、include 文件時盡量使用絕對路徑,因為它避免了 PHP 去 include_path 里查找文件的速 度,解析操作系統路徑所需的時間會更少。

10、如果你想知道腳本開始執行(譯註:即伺服器端收到客戶端請求)的時刻,使用 $_SERVER[‘REQUEST_TIME’] 要好於 time()

11、函數代替正則表達式完成相同功能。

12、str_replace 函數比 preg_replace 函數快,但 strtr 函數的效率是 str_replace 函數的四倍。

13、如果一個字元串替換函數,可接受數組或字元作為參數,並且參數長度不太長,那麼 可以考慮額外寫一段替換代碼, 使得每次傳遞參數是一個字元, 而不是只寫一行代碼接受數 組作為查詢和替換的參數。

14、使用選擇分支語句(譯註:即 switch case)好於使用多個 if,else if 語句。

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、除非腳本可以緩存,否則每次調用時都會重新編譯一次。引入一套 PHP 緩存機制通常 可以提升 25%至 100%的性能,以免除編譯開銷。

29、盡量做緩存,可使用 memcached。memcached 是一款高性能的內存對象緩存系統, 可用來加速動態 Web 應用程序,減輕資料庫負載。對運算碼 (OP code)的緩存很有用,使 得腳本不必為每個請求做重新編譯。

30、 當操作字元串並需要檢驗其長度是否滿足某種要求時, 你想當然地會使用 strlen()函數。 此函數執行起來相當快,因為它不做任何計算,只返回在 zval 結構(C 的內置數據結構,用 於存儲 PHP 變數)中存儲的已知字元串長度。但是,由於 strlen()是函數,多多少少會有些 慢,因為函數調用會經過諸多步驟,如字母小寫化(譯註:指函數名小寫化,PHP 不區分函 數名大小寫)、哈希查找,會跟隨被調用的函數一起執行。在某些情況下,你可以使用 isset() 技巧加速執行你的代碼。 (舉例如下) if (strlen($foo) 5) { echo 「Foo is too short」$$ } (與下面的技巧做比較) if (!isset($foo{5})) { echo 「Foo is too short」$$ } 調用 isset()恰巧比 strlen()快,因為與後者不同的是,isset()作為一種語言結構,意味著它 的執行不需要函數查找和字母小寫化。 也就是說, 實際上在檢驗字元串長度的頂層代碼中你 沒有花太多開銷。

31、當執行變數$i 的遞增或遞減時,$i++會比++$i 慢一些。這種差異是 PHP 特有的,並不 適用於其他語言, 所以請不要修改你的 C 或 Java 代碼並指望它們能立即變快, 沒用的。 ++$i 更快是因為它只需要 3 條指令(opcodes),$i++則需要 4 條指令。後置遞增實際上會產生一 個臨時變數,這個臨時變數隨後被遞增。而前置遞增直接在原值上遞增。這是最優化處理的 一種,正如 Zend 的 PHP 優化器所作的那樣。牢記這個優化處理不失為一個好主意,因為 並不是所有的指令優化器都會做同樣的優化處理, 並且存在大量沒有裝配指令優化器的互聯 網服務提供商(ISPs)和伺服器。

32、並不是事必面向對象(OOP),面向對象往往開銷很大,每個方法和對象調用都會消耗很 多內存。

33、並非要用類實現所有的數據結構,數組也很有用。

34、不要把方法細分得過多,仔細想想你真正打算重用的是哪些代碼?

35、當你需要時,你總能把代碼分解成方法。

36、盡量採用大量的 PHP 內置函數。

37、如果在代碼中存在大量耗時的函數,你可以考慮用 C 擴展的方式實現它們。

38、 評估檢驗(profile)你的代碼。 檢驗器會告訴你, 代碼的哪些部分消耗了多少時間。 Xdebug 調試器包含了檢驗程序,評估檢驗總體上可以顯示出代碼的瓶頸。

39、mod_zip 可作為 Apache 模塊,用來即時壓縮你的數據,並可讓數據傳輸量降低 80%。

40、在可以用 file_get_contents 替代 file、fopen、feof、fgets 等系列方法的情況下,盡量 用 file_get_contents,因為他的效率高得多!但是要注意 file_get_contents 在打開一個 URL 文件時候的 PHP 版本問題;

41、盡量的少進行文件操作,雖然 PHP 的文件操作效率也不低的;

42、優化 Select SQL 語句,在可能的情況下盡量少的進行 Insert、Update 操作(在 update 上,我被惡批過);

43、儘可能的使用 PHP 內部函數(但是我卻為了找個 PHP 裡面不存在的函數,浪費了本可 以寫出一個自定義函數的時間,經驗問題啊!);

44、 循環內部不要聲明變數, 尤其是大變數: 對象(這好像不只是 PHP 裡面要注意的問題吧?);

45、多維數組盡量不要循環嵌套賦值;

46、在可以用 PHP 內部字元串操作函數的情況下,不要用正則表達式;

47、foreach 效率更高,盡量用 foreach 代替 while 和 for 循環;

48、用單引號替代雙引號引用字元串;

49、「用 i+=1 代替 i=i+1。符合 c/c++的習慣,效率還高」

50、對 global 變數,應該用完就 unset()掉;

網站優化有哪些技巧和方法呢?

高效的優化策略

1、關鍵詞策略。挖掘、分析、篩選關鍵詞,整理關鍵詞列表。

這也是重中之重,關鍵詞選好了,優化的根基也算打穩了,挖掘分析長尾關鍵詞,優化好長尾詞對核心詞有非常大的幫助。

利用挖詞工具,如5118關鍵詞挖掘工具,挖出大量相關長尾詞找到合適的詞後,它具有導出功能,一鍵到位。

2、架構策略。針對關鍵詞設計網站架構,這個階段很重要,因為設計的網站架構、URL架構、內容架構取決了後面的一些SEO工作是否難易度。

3、內容策略。要做好調查分析什麼樣的題材和文章是用戶想要的、最喜歡的?這時可以不考慮SEO,單純的從用戶角度考慮內容。

利用一些用戶分析的工具,在大數據中分析出用戶最關心,最需要的有哪些,獲取了這些詞,就是你需要去做內容和文案的詞,也是目標群體最想看到的東西。

4、內鏈策略。做好了第2個步驟,內鏈方面就容易解決多了。

這時候的重點就是要考慮每一個關鍵詞需要多少內鏈支持,主要可以通過麵包屑導航、自動內鏈、全站鏈接等方面提供內鏈。

5、外鏈策略。做好內鏈後,接下來就要考慮外鏈,從原則上看,外鏈做得好的話,關鍵詞的排名不會太差。

外鏈主要通過友情鏈接(包括首頁和內頁)、商業合作(例如在門戶網站投放廣告考慮合作,添加鏈接)、軟文(各大平台投放的軟文,加上鏈接)、自然外鏈(用戶的轉發,自然成了外鏈曝光宣傳)來解決。

6、監控策略。後期的話,就要做好監控,像我每天會在一些工具平台上監控大量網站,除了自己的網站,同行或競爭對手的都要及時監控留意動態,對方做得好的地方,還是值得我們去學習參考的。

網站優化的方法有哪些?

1.網站診斷

從網站定位出發,對網站結構、網頁設計、標籤設計等各方面進行系統性的評測診斷,給出綜合評價報告。

2.關鍵詞分析

根據網站主題,選擇出最佳關鍵詞,整站將圍繞關鍵詞進行重點優化,獲取排名。

3.資料收集

收集網站主題相關的、整個優化過程所需的資料。

4.網站優化

從網站的結構、設計等多方面入手,針對首頁、主欄目頁、分欄目頁、專題及內容網頁等提供一個整站優化方案。

5.網站無漏測試和網頁內容

對網站的整體進行優化之前,對網站測試無漏鏈很關鍵。另外,網頁的原創性,也是決定網站整體排名的關鍵因素。

網站優化的具體過程可概括為以下幾步驟。

第一,根據網站主營的業務確定要優化的主關鍵詞和拓展關鍵詞。

第二,對網站的目錄結構、鏈接結構和各頁面結構進行全面的分析診斷,作出詳細的診斷報告,這樣可以有計劃、有針對性地開展優化工作。

第三,根據確定的關鍵詞和診斷報告,制定出合理的優化方案。

第四,按照優化方案對各網頁的頁面結構(對網頁各標籤進行優化)和鏈接結構、網站的整體目錄結構進行優化。

第五,為網站作有價值的資源鏈接,使網站活躍起來。

第六,經常更新網站的內容,使網站看起來具有活力,以便更好地留住目標客戶。

1、頁面關鍵字與關鍵字密度優化

很多搜索引擎都是通過頁面的關鍵詞密度來決定該頁面對關鍵字的關聯度,關聯度越高,該頁面的相關性就越高,所以應確保關鍵字在整個網頁中的充分利用和合理分布。具體做法有:充分利用所有可以利用的因素,但不要過分重複或簡單排列關鍵字;應遵循必要的語法規則,形成自然流暢的語句,使網頁不失吸引力;從頁面因素的優化角度出發,可考慮將關鍵字分布在網頁標題元、網頁描述/關鍵字元、正文標題、正文內容、文本鏈接、ALT標誌當中。

2、框架優化

所謂框架型網頁就是一個網頁的某一邊導航菜單是固定的,而頁面另一邊的信息可以上下移動。框架中的內容是無法在後台代碼中體現的,而對於那些主要為搜索引掌的搜索程序來說,其設計思路都是完全忽略某些HTML代碼,轉而直接鎖定網頁上的實際內容進行索引。這樣,搜索引擎在那些一般性的框架網頁上根本找不到要搜索的內容。

3、動態頁面優化

所謂動態網頁指的是採用ASP、PHP、JSP、CGI等程序動態生成的頁面。此類網頁中的大部分內容來自於網站相連的資料庫,在網路空間中並不存在實際的頁面,只有在接到用戶的訪問要求,即當用戶在變數區中輸入相應值以後,才自動生成。而搜索引擎只是一個搜索程序,它無法像真實的用戶一樣選擇變數並輸入數值。

4、建立網站地圖

網站地圖包括主要網頁的內容鏈接或者欄目鏈接。根據網站的大小、頁面數量的多少,它可以鏈接部分主要的或者所有的欄目頁面。這樣,搜索引擎程序得到了網站地圖頁面,就可以迅速地訪問整個站點上的所有網頁及欄目。為了使網站地圖吸引搜索引擎與真實訪問者,一定要在鏈接後寫上一定的描述性短句,對與此鏈接相關的關鍵詞進行簡單描述,但是不能過度使用關鍵詞。作為網站地圖,不僅是為搜索引擎設計的,也是為真實的訪問者設計的,如果訪問者能感覺到地圖好用,搜索引擎也同樣能正確地理解地圖的意義。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/277613.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-19 13:21
下一篇 2024-12-19 13:21

相關推薦

  • Python爬蟲可以爬哪些網站

    Python是被廣泛運用於數據處理和分析領域的編程語言之一。它具有易用性、靈活性和成本效益高等特點,因此越來越多的人開始使用它進行網站爬取。本文將從多個方面詳細闡述,Python爬…

    編程 2025-04-29
  • ArcGIS更改標註位置為中心的方法

    本篇文章將從多個方面詳細闡述如何在ArcGIS中更改標註位置為中心。讓我們一步步來看。 一、禁止標註智能調整 在ArcMap中設置標註智能調整可以自動將標註位置調整到最佳顯示位置。…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • 解決.net 6.0運行閃退的方法

    如果你正在使用.net 6.0開發應用程序,可能會遇到程序閃退的情況。這篇文章將從多個方面為你解決這個問題。 一、代碼問題 代碼問題是導致.net 6.0程序閃退的主要原因之一。首…

    編程 2025-04-29
  • Python創建分配內存的方法

    在python中,我們常常需要創建並分配內存來存儲數據。不同的類型和數據結構可能需要不同的方法來分配內存。本文將從多個方面介紹Python創建分配內存的方法,包括列表、元組、字典、…

    編程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一個類的構造函數,在創建對象時被調用。在本篇文章中,我們將從多個方面詳細討論init方法的作用,使用方法以及注意點。 一、定義init方法 在Pyth…

    編程 2025-04-29
  • 用不同的方法求素數

    素數是指只能被1和自身整除的正整數,如2、3、5、7、11、13等。素數在密碼學、計算機科學、數學、物理等領域都有著廣泛的應用。本文將介紹幾種常見的求素數的方法,包括暴力枚舉法、埃…

    編程 2025-04-29
  • 使用Vue實現前端AES加密並輸出為十六進位的方法

    在前端開發中,數據傳輸的安全性問題十分重要,其中一種保護數據安全的方式是加密。本文將會介紹如何使用Vue框架實現前端AES加密並將加密結果輸出為十六進位。 一、AES加密介紹 AE…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • Python學習筆記:去除字元串最後一個字元的方法

    本文將從多個方面詳細闡述如何通過Python去除字元串最後一個字元,包括使用切片、pop()、刪除、替換等方法來實現。 一、字元串切片 在Python中,可以通過字元串切片的方式來…

    編程 2025-04-29

發表回復

登錄後才能評論