|
|
|
|
|
網(wǎng)頁(yè)壓縮是一種網(wǎng)頁(yè)優(yōu)化技術(shù),可以讓網(wǎng)頁(yè)體積縮小后再傳輸?shù)娇蛻舳?,從而減少數(shù)據(jù)傳送量,提高速度。這種技術(shù)現(xiàn)在使用已經(jīng)相當(dāng)普遍,絕大多數(shù)網(wǎng)頁(yè)都使用了這種技術(shù)。
網(wǎng)頁(yè)壓縮可以在服務(wù)器或空間里通過(guò)參數(shù)設(shè)置啟用或關(guān)閉,這個(gè)設(shè)置是對(duì)網(wǎng)站所有頁(yè)面有效的,操作起來(lái)并不復(fù)雜。
如果你想單獨(dú)操作某個(gè)頁(yè)面,使用或不使用壓縮,在php里也可以輕松實(shí)現(xiàn)。
ini_set調(diào)用zlib.output_compression壓縮網(wǎng)頁(yè)
下面是實(shí)例代碼:
<?php ini_set('zlib.output_compression', 'Off'); ?>
或
<?php ini_set('zlib.output_compression', 'On'); ?>
只需在網(wǎng)頁(yè)的開頭加上上述的一行代碼即可。
加上代碼后,可以立即檢測(cè)網(wǎng)頁(yè)gzip壓縮是否設(shè)置有效了。
剛才說(shuō)到,可以通過(guò)全局設(shè)置來(lái)控制整個(gè)網(wǎng)站所有網(wǎng)頁(yè)啟動(dòng)或關(guān)閉網(wǎng)頁(yè)壓縮的功能,各種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)頁(yè)輸出內(nèi)容不完整。在這種情況下,可以通過(guò)設(shè)置buffer size來(lái)代替。
下面是實(shí)例代碼:
<?php
ini_set("zlib.output_compression", 4096);
?>
ob_gzhandler也能實(shí)現(xiàn)網(wǎng)頁(yè)壓縮
壓縮網(wǎng)頁(yè),ob_gzhandler也能實(shí)現(xiàn),不過(guò)效率沒有zlib.output_compression高,請(qǐng)參考文章《zlib.output_compression比ob_gzhandler效率高》。
知識(shí)擴(kuò)展
ini_set的用法
描述
string ini_set ( string $varname , string $newvalue )
設(shè)置配置項(xiàng)的值。配置選項(xiàng)將在腳本的執(zhí)行時(shí)使用這個(gè)新的值,直到該腳本執(zhí)行結(jié)束。
參數(shù)
varname
并非所有可用的選項(xiàng)都可以通過(guò)ini_set ()來(lái)修改。
newvalue
新值的選項(xiàng)。
返回值
成功則返回舊值,失敗返回FALSE。
實(shí)例
<?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è)置項(xiàng)都是以integer型存儲(chǔ)的,比如upload_max_filesize項(xiàng)就是以簡(jiǎn)寫形式( shorthand notation)存儲(chǔ)的,因此直接用ini_get()并不能獲得正確的值,可以調(diào)用return_bytes()函數(shù)進(jìn)行轉(zhuǎn)換。
2.并不是所有的available options都可以通過(guò)ini_set()函數(shù)來(lái)修改。具體哪些可以通過(guò)ini_set()函數(shù)來(lái)修改,參見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
前提是該站點(diǎn)在httpd.conf中配置了:AllowOverride All 。
您可能對(duì)以下文章也感興趣: