博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网站基本优化:PHP的gzip压缩方法
阅读量:4322 次
发布时间:2019-06-06

本文共 1466 字,大约阅读时间需要 4 分钟。

第一步,建立压缩所需的php文件

复制如下代码,保存到要压缩的css文件同目录,命名为css.php,名称可根据你自己喜好命名,只要是php文件即可.

01 <?php
02 /**
03 *@a.header(...这一行是设置压缩文件类型的,如果你要压缩js文件就将text/css改成text/javascript
04 *@b.include(...此处包含你要压缩的文件,多个按你现在的顺序依次用include("...");调用
05 */
06 if(extension_loaded('zlib')){
//检查服务器是否开启了zlib拓展
07     ob_start('ob_gzhandler');
08   }
09   header ("content-type: text/css; charset: utf-8");//在这里设置要压缩的文件类型
10   header ("cache-control: must-revalidate");
11   $offset = 60 * 60 * 240;//文件的距离现在的过期时间,这里设置为一天
12   $expire "expires: " gmdate ("D, d M Y H:i:s", time() + $offset) . " GMT";
13   header ($expire);
14   ob_start("compress");
15   function compress($buffer) {
//去除文件中的注释
16       $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!''',$buffer);
17       return $buffer;
18     }
19   include("style.css");//在此处包含你所要压缩的文件,多个请用include包含后依次排列
20   if(extension_loaded("zlib")){
21     ob_end_flush();//输出buffer中的内容
22 }
23 ?>

第二步,前台调用

以本站为例. 原CSS调用为:

1 <link rel="stylesheet" media="screen" href="http://mrthink.net/wp-content/themes/zsofa/style.css">

gzip压缩后调用方式为:

1 <link rel="stylesheet" media="screen" href="http://mrthink.net/wp-content/themes/zsofa/css.php?v=100415">

需要说明的是,如果你以前有多个css调用,那么,gzip后只须调用一个.当然,前提是你的压缩php文件中包含了所有要调用的css样式表.

第三步,压缩完成,此时用我文章开始提到的YSlow插件再分析一下你的网站,对比一下两次的分值,相信一定会有惊喜.
最后,要提醒一点的时,gzip的php文件中设置了缓存时间,如果你改过css文件,传上去后不是即时生效的,生效时间为上述gzip代码中$offset后面设置的值.解决方法其实也很简单,修改css后,同时修改一下样式调用路径中…/css.php?v=100415 100415的值(这个值可以随意取)即可.

转载于:https://www.cnblogs.com/lost-1987/articles/3277803.html

你可能感兴趣的文章
Python编程语言的起源
查看>>
Azure ARMTemplate模板,VM扩展命令
查看>>
(转)arguments.callee移除AS3匿名函数的侦听
查看>>
onNewIntent调用时机
查看>>
MYSQL GTID使用运维介绍(转)
查看>>
04代理,迭代器
查看>>
解决Nginx+PHP-FPM出现502(Bad Gateway)错误问题
查看>>
Java 虚拟机:互斥同步、锁优化及synchronized和volatile
查看>>
2.python的基本数据类型
查看>>
python学习笔记-day10-01-【 类的扩展: 重写父类,新式类与经典的区别】
查看>>
查看端口被占用情况
查看>>
浅谈css(块级元素、行级元素、盒子模型)
查看>>
Ubuntu菜鸟入门(五)—— 一些编程相关工具
查看>>
PHP开源搜索引擎
查看>>
12-FileZilla-响应:550 Permission denied
查看>>
ASP.NET MVC 3 扩展生成 HTML 的 Input 元素
查看>>
LeetCode 234. Palindrome Linked List
查看>>
编译HBase1.0.0-cdh5.4.2版本
查看>>
结构体指针
查看>>
迭代器
查看>>