技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運營

贊助商

分類目錄

贊助商

最新文章

搜索

php通過ini_set調(diào)用output_compression壓縮網(wǎng)頁

作者:admin    時間:2012-10-23 15:11:36    瀏覽:

網(wǎng)頁壓縮是一種網(wǎng)頁優(yōu)化技術(shù),可以讓網(wǎng)頁體積縮小后再傳輸?shù)娇蛻舳?,從而減少數(shù)據(jù)傳送量,提高速度。這種技術(shù)現(xiàn)在使用已經(jīng)相當(dāng)普遍,絕大多數(shù)網(wǎng)頁都使用了這種技術(shù)。

網(wǎng)頁壓縮可以在服務(wù)器或空間里通過參數(shù)設(shè)置啟用或關(guān)閉,這個設(shè)置是對網(wǎng)站所有頁面有效的,操作起來并不復(fù)雜。

如果你想單獨操作某個頁面,使用或不使用壓縮,在php里也可以輕松實現(xiàn)。

ini_set調(diào)用zlib.output_compression壓縮網(wǎng)頁

下面是實例代碼:

<?php ini_set('zlib.output_compression', 'Off'); ?>

或 

<?php ini_set('zlib.output_compression', 'On'); ?>

只需在網(wǎng)頁的開頭加上上述的一行代碼即可。

加上代碼后,可以立即檢測網(wǎng)頁gzip壓縮是否設(shè)置有效了。

剛才說到,可以通過全局設(shè)置來控制整個網(wǎng)站所有網(wǎng)頁啟動或關(guān)閉網(wǎng)頁壓縮的功能,各種web服務(wù)器的具體設(shè)置操作可以看這里:網(wǎng)站啟用GZip壓縮后,速度快了3倍!

在一些案例中發(fā)現(xiàn),ini_set調(diào)用zlib.output_compression設(shè)置為“on”后,php不發(fā)送Content-type header,從而導(dǎo)致網(wǎng)頁輸出內(nèi)容不完整。在這種情況下,可以通過設(shè)置buffer size來代替。

下面是實例代碼:

<?php
ini_set("zlib.output_compression", 4096);
?>

ob_gzhandler也能實現(xiàn)網(wǎng)頁壓縮

壓縮網(wǎng)頁,ob_gzhandler也能實現(xiàn),不過效率沒有zlib.output_compression高,請參考文章《zlib.output_compression比ob_gzhandler效率高》。

知識擴展

ini_set的用法

描述

string ini_set ( string $varname , string $newvalue )

設(shè)置配置項的值。配置選項將在腳本的執(zhí)行時使用這個新的值,直到該腳本執(zhí)行結(jié)束。

參數(shù)

varname
并非所有可用的選項都可以通過ini_set ()來修改。

newvalue
新值的選項。

返回值
成功則返回舊值,失敗返回FALSE。

實例

<?php
echo ini_get('display_errors');
if (!ini_get('display_errors')) {
    ini_set('display_errors', 1);
}
echo ini_get('display_errors');
?>

注意

1.php.ini文件中,并不是所有的設(shè)置項都是以integer型存儲的,比如upload_max_filesize項就是以簡寫形式( shorthand notation)存儲的,因此直接用ini_get()并不能獲得正確的值,可以調(diào)用return_bytes()函數(shù)進行轉(zhuǎn)換。

2.并不是所有的available options都可以通過ini_set()函數(shù)來修改。具體哪些可以通過ini_set()函數(shù)來修改,參見http://www.php.net/manual/zh/ini.list.php

如下圖所示:

其中“可修改范圍”的定義如下表:

因此,像post_max_size、upload_max_filesize用下面的方法是修改不了的。

[php] view plaincopyprint?
ini_set('post_max_size','1024M'); 
ini_set('upload_max_filesize','1024M'); 
ini_set('post_max_size','1024M');
ini_set('upload_max_filesize','1024M');

正確做法是用.htaccess文件:

[c-sharp] view plaincopyprint?
php_value upload_max_filesize 50M 
php_value post_max_size 100M 
php_value upload_max_filesize 50M
php_value post_max_size 100M

前提是該站點在httpd.conf中配置了:AllowOverride All 。

您可能對以下文章也感興趣

ini_set()解決圖片上傳時出現(xiàn)內(nèi)存不足的問題。

標簽: ini_set  
相關(guān)文章
    x