程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 分享PHP技術開發技巧

分享PHP技術開發技巧

編輯:關於PHP編程

本文檔的閱讀對象是有一定經驗的PHP程序員,文檔中將介紹在PHP開發中的一些開發技巧,希望能對讀者有一定的啟發。

  1. 提高PHP的運行效率

  PHP的優點之一是速度很快,對於一般的網站應用,可以說是已經足夠了。不過如果站點的訪問量很高、帶寬窄或者其它的因素令服務器產生性能瓶頸的時候,你可能得想想其它的辦法來進一步提高PHP的速度了。

  1.1. 代碼優化

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

  2、盡可能的使用PHP內部函數。自己編寫函數之前要詳細查閱手冊,看有沒有相關的函數,否則費力不討好。

  3、能使用單引號字符串盡量使用單引號字符串。單引號字符串的效率要高於雙引號字符串。

  4、用foreach代替while遍歷數組。遍歷數組時foreach的效率明顯高於while循環,而且不需要調用reset函數。兩種遍歷方法如下:

程序1:
  reset ($arr);  
  while (list($key, $value) = each ($arr)) {  
  echo "Key: $key; Value: $value
  n";  
  }  
 程序2:
  foreach ($arr as $key => $value) {  
  echo "Key: $key; Value: $value
  n";  
  }  

  1.2. 壓縮頁面

  HTTP1.1協議支持頁面壓縮傳送,也就是說服務器把一個頁面壓縮傳送到客戶端,然後在客戶端將頁面解壓縮再顯示給客戶。在服務器端有兩種傳輸方式,一種是頁面事先已經壓縮好了,傳送時只要將壓縮頁面傳送到客戶端就行,這種適用於靜態網頁多的情況,但是對於大多數站點,動態頁面比較多,這種方法不太適合,因為很多傳到客戶端的頁面其實是沒有的,是服務器接到客戶端用戶請求動態產生的,所以就要求每生成一個動態頁面都要在傳到客戶端以前先打包壓縮。從PHP的4.0.4版以後,可以在php.ini文件中增加一行配置“output_handler = ob_gzhandler”,這樣每個動態生成的頁面在傳送到客戶端之前都會進行壓縮,但是根據PHP官方站點的說明,這個參數不能與“zlib.output_compression = on”參數同時使用,因為容易引起PHP工作不正常,另外它只能壓縮PHP程序的動態生成的頁面,對於大量的靜態頁面尤其是圖像文件就不行了。但是mod_gzip模塊為Apahe提供了將靜態頁面在傳給客戶端以前先壓縮的功能,它的壓縮比最大能到10,一般情況下可以到 3,也就是說網站的傳輸速率一下提高了三倍多。要使用mod_gzip還要對Apache進行相應的配置,需要在httpd.conf文件中加入一些參數:

mod_gzip_on Yes(模塊是否生效)
  mod_gzip_minimum_file_size 1002(最小壓縮文件大小)
  mod_gzip_maximum_file_size 0(最大壓縮文件大小,0表示沒有限制)
  mod_gzip_maximum_inmem_size 60000(最大可占用內存
  mod_gzip_item_include file "..gif102SINA>DOUBLE_QUOTATION (以gif結尾的文件要壓縮傳送)
  mod_gzip_item_include file ".txt102SINA>DOUBLE_QUOTATION
  mod_gzip_item_include file ".html102SINA>DOUBLE_QUOTATION
  mod_gzip_item_exclude file ".css102SINA>DOUBLE_QUOTATION

  1.3. 文件緩存

  這種方法通常是針對PHP、PERL等CGI程序而言的,因為這些程序有一個共同的特征就是接到用戶的請求後不是馬上將結果返回給用戶,而是經過解釋器解釋執行後將執行結果返回給客戶,這期間通常都要涉及到數據庫的訪問。這樣就會出現一個問題,當兩個用戶訪問同一個頁面時,系統將分別對兩個請求進行操作,但事實上這兩個操作可能是一模一樣的,這樣無形當中增加了系統的負擔。所以通常的解決辦法是在系統內存中開辟出一段空間,當用戶第一次訪問頁面後將執行結果存放在該內存中,當有用戶再一次訪問該頁面時,系統就將頁面直接從內存中調出而不需要重新解釋執行,這段內存空間就叫緩存。目前流行的緩存管理程序是Zend  Technologies公司的Zend Cache。

2. 執行系統外部命令

  PHP作為一種服務器端的腳本語言,象編寫簡單,或者是復雜的動態網頁這樣的任務,它完全能夠勝任。但事情不總是如此,有時為了實現某個功能,必須借助於操作系統的外部程序(或者稱之為命令),這樣可以做到事半功倍。

  在PHP中調用外部命令,可以用如下三種方法來實現:

  2.1. 用PHP提供的專門函數

  PHP提供共了3個專門的執行外部命令的函數:system(),exec(),passthru()。

  system()

  原型:string system (string command [, int return_var])

  system()函數很其它語言中的差不多,它執行給定的命令,輸出和返回結果。第二個參數是可選的,用來得到命令執行後的狀態碼。

  例子:

system("/usr/local/bin/webalizer/webalizer&q

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved