如何用php压缩html代码并输出

html-css011

如何用php压缩html代码并输出,第1张

第一步,你需要对php的设置如下:

php.ini: output_buffering = Off output_handler = ob_gzhandler zlib.output_compression = Off zlib.output_compression_level = -1

第二步,你需要在apache下增加如下设置:

AddOutputFilter DEFLATE html php js css

这样就可以对html php js css进行gzip压缩了。

第三步,你需要使用如下php压缩html并输出到客户端的函数:

function compress_html($string) { return ltrim(rtrim(preg_replace(array("/>*([^ ]*) *</","//","'/\*[^*]*\*/'","/\r\n/","/\n/","/\t/",'/>[ ]+</'), array(">\\1<",'','','','','','><'),$string)))}

上面的这个正则表达式,很强大的哦,经过我本人亲自测试可使用。

通过以上方法,你就可以将你的html代码压缩然后输出给客户端了。不信你可以查看源代码,就是一行,网页瞬间压缩很小。

gzip 是在 Linux 系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。

在Nginx安装完成之后,我们可以开启Gzip压缩功能,这里Nginx默认只能对text/html类型的文件进行压缩。

下面的指令为开启Gzip的指令:

   # 启用 gzip 压缩功能

   gzip  on

   

   # 默认值是1.1,就是说对HTTP/1.1协议的请求才会进行gzip压缩

   gzip_http_version 1.1

   

   gzip_vary on

   

   # 压缩级别,1压缩比最小处理速度最快,9压缩比最大但处理最慢,同时也最消耗CPU,一般设置为3就可以了

   gzip_comp_level 6

   

   # nginx 做前端代理时启用该选项,表示无论后端服务器的headers头返回什么信息,都无条件启用压缩

   gzip_proxied any

   

   # 什么类型的页面或文档启用压缩

   gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript image/jpeg image/gif image/png

   

   # 最小压缩的页面,如果页面过于小,可能会越压越大,这里规定大于1K的页面才启用压缩

   gzip_min_length  1024

   

   # 设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流

   gzip_buffers 16 8k

   

   # 禁用IE6的gzip压缩

   gzip_disable "MSIE [1-6].(?!.*SV1)"

相关配置说明:

1、在gzip_http_version的默认值是1.1,就是说对HTTP/1.1协议的请求才会进行gzip压缩。

如果使用了proxy_pass进行反向代理,那么nginx和后端的upstream server之间是用HTTP/1.0协议通信的,如果使用nginx通过反向代理做Cache Server,前端的nginx没有开启gzip,且后端的nginx上未设置gzip_http_version为1.0,那么Cache的url将不会被gzip压缩。

2、gzip_disable的设置是禁用IE6的gzip压缩

IE6的某些版本对gzip的压缩支持不是很好,会造成页面的假死。对img进行gzip后会造成IE6的假死,把对img的gzip压缩去掉后就正常了。为了确保其它的IE6版本不出问题,所以加上了gzip_disable配置项。

3、gzip_min_length设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。

默认值是0,不管页面多大都压缩。建议设置成大于1k的字节数,小于1k可能会越压越大。 即: gzip_min_length 1024。