2010-04-02

【程式】PHP - gzencode 後變亂碼 !!



昨天同事說 js 用 php 的 gzencode 壓縮後,會變亂碼。

所以就看了一下。

程式如下:

    header('Content-type: text/javascript');
    header('Vary: Accept-Encoding');
    header('Expires: '.gmdate('D, d M Y H:i:s', time() + 3600).' GMT');
    header('Content-Encoding: gzip');
    
    $str = file_get_contents('js/_util/jquery-1.3.2.min.js');
    $str = gzencode($str); 
    echo $str;

查了一下,原來是在 php.ini 就已經設定了 zlib.output_compression = On。

當設定了 zlib.output_compression = On 又在程式中使用 gzencode

這樣子,輸出就會變成亂碼了。

所以簡單的作法,就是【將程式中的 gzencode 拿掉】即可。

// $str = gzencode($str); 

因為已經在 php.ini 設定好要 compression 了。

拿掉後,結果就正常了。

 

PS.

雖然 Lighttpd 中也有設定

compress.filetype          = ("text/plain", "text/html", "text/css", "text/javascript" )

但這個是跟 Lighttpd 沒關系的,因為是從 PHP 去吐的。所以是跟 php.ini 設定檔有關。

在這裡做個記錄。

 

0 comments:

張貼留言