使用ob_gzhandler函數有3種方法讓它對php進行壓縮:
1、在php.ini中設定output_handler = ob_gzhandler
2、在.htaccess中加入php_value output_handler ob_gzhandler
3、在php檔案頭加上ob_start(‘ob_gzhandler’);
第一種我們是沒法辦到,第二種方法不錯,可以一勞永逸,一、二種方法效果都一樣,就是對所有php尾碼檔案進行壓縮。我這裡主要介紹一下第三種方法,
就是試用CSS壓縮法 例如對模板下的style.css進行壓縮
1、把模板目錄下的style.css複製一份出來,命名為style.css.php
接著在style.css.php頂部加入這句:
代碼如下 |
複製代碼 |
<?php if(extension_loaded('zlib')) {ob_start('ob_gzhandler');} header("Content-type: text/css"); ?> |
在最後加上
代碼如下 |
複製代碼 |
<?php if(extension_loaded('zlib')) {ob_end_flush();} ?> |
2、按照下面的方式修改header.php中的css串連
原來的:
代碼如下 |
複製代碼 |
<link rel="stylesheet" type="text/css" media="screen" href="/style.css"/>
|
修改後的:
代碼如下 |
複製代碼 |
<link rel="stylesheet" type="text/css" media="screen" href="/style.css.php"/>
|
搞定,現在你的CSS就可以被gzip壓縮了。
JS也可以使用同樣的方法,只是在xx.js.php頭部加入的應該是這樣:
代碼如下 |
複製代碼 |
<?php if ( extension_loaded('zlib') ) {ob_start('ob_gzhandler');} header("Content-Type: text/java script"); ?> |
(複製的時候去掉?php前的空格)
仔細看看K2主題的中的JS,就是修改尾碼為php後在頂部加入了ob_gzhandler函數。