November 9, 2007
用 PHP 压缩 JavaScript
其实这样的标题不太准确,因为压缩 JavaScript 的不是 PHP,而是 gzip。另外这种方法应用也相当广泛了,WordPress 上著名的 K2 主题一直是这样压缩 JavaScript 的。
第一步
打开需要压缩的 JavaScript 文件,把下面的代码加在 JavaScript 代码前面:
<?php
ob_start('ob_gzhandler');
header("Cache-Control: public");
header("Pragma: cache");
$offset = 60*60*24*60;
$ExpStr = "Expires: ".gmdate("D, d M Y H:i:s",time() + $offset)." GMT";
$LmStr = "Last-Modified: ".gmdate("D, d M Y H:i:s",filemtime(__FILE__))." GMT";
header($ExpStr);
header($LmStr);
header('Content-Type: text/javascript; charset: UTF-8');
?>
ob_start('ob_gzhandler');
header("Cache-Control: public");
header("Pragma: cache");
$offset = 60*60*24*60;
$ExpStr = "Expires: ".gmdate("D, d M Y H:i:s",time() + $offset)." GMT";
$LmStr = "Last-Modified: ".gmdate("D, d M Y H:i:s",filemtime(__FILE__))." GMT";
header($ExpStr);
header($LmStr);
header('Content-Type: text/javascript; charset: UTF-8');
?>
第二步
把该文件另存为 *.php,如:common.js -> common.js.php。
第三步
引入该脚本的时候记得使用新的名称。

Mao at 14:19 Nov 10, 2007 ₪
现在就去测试!
sofish at 13:41 Nov 11, 2007 ₪
已经试了,一个网速很慢的博客也帮忙测了,好像真的可以…哈哈 …
skyblue at 00:00 Mar 28, 2008 ₪
需要服务器支持的吧?
Charles at 10:27 May 14, 2008 ₪
我不大懂这些代码,但是直觉上,我觉得只有第一行是跟压缩有关的。而后续的代码貌似在控制缓冲,好像是让浏览器把缓冲文件的有效期设成60天。
真要那样不会太长吗?我几乎天天改自己的代码呀。。。
木蚂蚁 at 22:34 Sep 09, 2008 ₪
踩踩,拍砖