如何在PHP中为css/js文件使用gzip?

如何在PHP中为css/js文件使用gzip?,php,gzip,Php,Gzip,现在我没有使用任何压缩方法,只需将以下内容放在body标记之间: <link rel="stylesheet" type="text/css" href="Client/Css/all.css" /> 可以在PHP中使用ob_start(“ob_gzhandler”)来压缩这个css文件吗 怎么做呢?这通常不是以编程方式完成的,而是由web服务器处理的 对于apache,您可以使用一个或模块 您可以使用的IIS。是的,您可以(通过执行压缩的php脚本管道传输文件时)。但这不仅仅

现在我没有使用任何压缩方法,只需将以下内容放在body标记之间:

<link rel="stylesheet" type="text/css" href="Client/Css/all.css" />

可以在PHP中使用ob_start(“ob_gzhandler”)来压缩这个css文件吗


怎么做呢?

这通常不是以编程方式完成的,而是由web服务器处理的

对于apache,您可以使用一个或模块

您可以使用的IIS。

是的,您可以(通过执行压缩的php脚本管道传输文件时)。但这不仅仅是压缩输出。您应该只向支持压缩输出的客户端发送压缩输出,您应该确保正确处理缓存信息/请求。等等


在相当多的情况下,您的Web服务器支持在不需要PHP脚本的情况下为您执行所有这些操作。对于Apache,请查看mod_deflate和mod_mime(指令加法编码)。

有几种方法

您可以告诉Web服务器将该文件视为PHP(重命名为具有.PHP扩展名是最简单的),然后添加:

<?php
  header("Content-type: text/css; charset=utf-8");
  ob_start("ob_gzhandler")
?>

到顶端

您可以编写一个PHP脚本来做同样的事情,但是读取CSS文件而不是内联

这两个选项都会导致缓存问题——如果您想保持理智,您还必须处理缓存控制HTTP头


最好的选择是忘记PHP,只需配置您的Web服务器来压缩这些文件(使用mod_deflate、mod_gzip或类似工具)

您想实现什么?如果您试图缩小组件以发送到客户端浏览器,以便更快地下载它们,则应使用mod_defalte。如果这不是一个选项,您可以在此处找到更多信息:


编辑:我只想指出,除非您使用的是较旧版本的Apache,否则不应该使用mod_gzip

如果使用较新版本的apache web服务器,请将以下内容添加到.htaccess文件中:




别忘了字符编码声明。它是相当不相关的-只有非常罕见的边缘情况下不使用普通ASCII-这是可能使用的任何字符编码的子集。除非他使用的是旧版本,否则他会想使用mod_deflate,而不是mod_gzip。我不明白:gzip的使用多于deflate,为什么Mod_Gzip比Mod_deflate旧?
DeflateCompressionLevel 9  
SetOutputFilter DEFLATE  
BrowserMatch ^Mozilla/4 gzip-only-text/html  
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html  
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary  
Header append Vary User-Agent env=!dont-vary