PHP - 发送gzip压缩的JS/CSS

Ale*_*lex 7 javascript css php gzip

我用这段代码创建了一个style.css.php文件:

<?php

  $gzip = (ob_get_length() === false && !ini_get("zlib.output_compression") && ini_get("output_handler") != "ob_gzhandler" && extension_loaded("zlib") && substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') && !headers_sent());

  if(!$gzip) header('Location: style.css');

  header('Content-type: text/css');
  header('Cache-Control: no-cache');
  header('Expires: Mon, 1 Jan 1901 04:20:00 GMT');

  ob_start('ob_gzhandler');

  include "style.css";
?>
Run Code Online (Sandbox Code Playgroud)

你怎么看?这是压缩js/css文件的好方法吗?有一个更好的方法吗?我正在为一个公共应用程序这样做.任何人都可以下载.因此,在禁用gzip的共享主机上会有​​人

Art*_*cto 10

不,不行.那里有很多错误.包括,重定向后没有死亡,没有考虑放气方法,......

这与PHP非常简单,因为zlib输出处理程序会自动检测发送给客户端的适当压缩(如果有的话); 你所要做的就是启用它:

<?php
if (extension_loaded("zlib") && (ini_get("output_handler") != "ob_gzhandler")) {
    ini_set("zlib.output_compression", 1);
}

readfile('style.css');
Run Code Online (Sandbox Code Playgroud)

  • readfile()只是以块的形式提取文件并将它们发送出去.include/require将首先通过PHP解析器运行数据,如果文件是纯CSS,这是一个无用的步骤. (5认同)