如何提高PHP速度第2/3頁
更新時間:2007年02月22日 00:00:00 作者:
來自Remote Communications的免費(fèi)Apache模塊mod_gzip就具有為支持這類內(nèi)容編碼的瀏覽器壓縮靜態(tài)Web內(nèi)容的能力。對于絕大多數(shù)靜態(tài)Web內(nèi)容,mod_gzip都非常有效。mod_gzip可以方便地編譯到Apache里面,也可以作為DSO使用。據(jù)Remote communications公司說,mod_gzip也能夠壓縮來自mod_php、mod_perl等的動態(tài)內(nèi)容。我試了一次又一次,但看來還是不行。我看了許多關(guān)于mod_gzip的論壇和文章,看來到了mod_gzip的下一個版本(可能是1.3.14.6f)這個問題有望得到解決。在此之前,我們可以在網(wǎng)站的靜態(tài)部分使用mod_gzip。
然而有時我們確實(shí)需要壓縮動態(tài)內(nèi)容,所以必須找找其他辦法。有一種辦法是使用class.gzip_encode.php,這是一個可以用來壓縮頁面內(nèi)容的PHP類,具體方法是在PHP腳本的開頭和末尾調(diào)用該類的某些函數(shù)。如果要在網(wǎng)站級實(shí)現(xiàn)這個方案,可以從php.ini文件的auto_prepend以及auto_append指令調(diào)用這些函數(shù)。這種方法雖然有效,但它無疑為高負(fù)載的網(wǎng)站帶來了更多的開銷。關(guān)于如何使用這個類的詳細(xì)說明,請參見它的源代碼。它的源代碼說明相當(dāng)完善,作者告訴了你所有你必須知道的事情。
PHP 4.0.4有一個新的輸出緩存句柄ob_gzhandler,它與前面的類相似,但用法不同。使用ob_gzhandler時要在php.ini中加入的內(nèi)容如下:
output_handler = ob_gzhandler ;
這行代碼使得PHP激活輸出緩存,并壓縮它發(fā)送出去的所有內(nèi)容。如果由于某種原因你不想在php.ini中加上這行代碼,你還可以通過PHP源文件所在目錄的.htaccess文件改變默認(rèn)的服務(wù)器行為(不壓縮),語法如下:
php_value output_handler ob_gzhandler
或者是從PHP代碼調(diào)用,如下所示:
ob_start("ob_gzhandler");
采用輸出緩存句柄的方法確實(shí)非常有效,而且不會給服務(wù)器帶來什么特殊的負(fù)荷。但必須注意的是,Netscape Communicator對壓縮圖形的支持不佳,因此除非你能夠保證所有用戶都使用IE瀏覽器,否則你應(yīng)該禁止壓縮JPEG和GIF圖形。一般地,對于所有其他文件,這種壓縮都有效,但建議你針對各種瀏覽器都分別進(jìn)行測試,特別是當(dāng)你使用了特殊的插件或者數(shù)據(jù)查看器時這一點(diǎn)尤其重要。
相關(guān)文章
Admin generator, filters and I18n
You need to modify your EntityFormFilter (where Entity is your object class - Article, Book, etc.).2011-10-10

