|
|
|
|
|
網(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 。
您可能對以下文章也感興趣: