使用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函數.
新聞熱點
疑難解答