设为首页 收藏本站
查看: 587|回复: 0

[经验分享] PHP 启用Gzip 压缩进行优化

[复制链接]

尚未签到

发表于 2017-3-28 11:14:22 | 显示全部楼层 |阅读模式
确定服务器支持gzip compression
Use PHP to Gzip CSS files  http://papermashup.com/use-php-to-gzip-css-files/
Compress CSS and JavaScript with PHP http://wp-mix.com/compress-gzip-deflate-css-javascript/
Enabling Gzip Compression of PHP, CSS, and JS Files Without mod_deflate
http://www.warpconduit.net/2010/10/23/enabling-gzip-compression-of-php-css-and-js-files-without-mod_deflate/
Minify helper for cakephp http://bakery.cakephp.org/articles/_k10_/2009/01/17/minify-helper-for-cakephp
Using PHP Minify in CakePHP http://7shifts.com/using-php-minify-in-cakephp/
这篇文章的问题:
1. $min_cachePath = TMP . '/minify';  这里要改为:$min_cachePath = TMP . 'minify';
2. 在app/tmp建立minify文件夹。
3. 修改函数:同时里面的e方法改成echo方法。
function _path($assets, $ext){
if(!is_array($assets)){
$assets = array($assets);
}
$path = $this->webroot . "min-" . $ext . "?f=";
foreach($assets as $asset){
if(strpos($asset,"/")===0){
//如果以为/开头,表示这个文件不是在规定的地方里面,所以要特殊处理
$path .= (substr($asset,1) . ".$ext,");
}else{
$path .= ($ext . '/' . $asset . ".$ext,");
}
}
return substr($path, 0, count($path)-2);
}
4.  这里两个变量不存在,要增加app/Vendor/min/config.php
$min_serveOptions['rewriteCssUris'] = false;
$min_serveOptions['minifierOptions']['text/css']['prependRelativePath'] = WEBROOT_URL . 'css/theme/';
5.清理缓存后第一次刷新没问题,第二次刷新就无法下载压缩后的文件,为何?
$path .= ($ext . '/' . $asset . ".$ext"."&rt=".rand(100000,999999)); 这个方法加上随机数,能解决这个问题,但是,客户端能否缓存?


Compress CSS and JavaScript with PHP
CSS, JavaScript131
Quick snippets for compressing CSS and JavaScript with PHP’s ob_gzhandler, which will gzip or deflate content depending on browser support.
Compress CSS content
To compress CSS content, add the following code to any PHP file (i.e., .php extension):
<?php // compress CSS
header("content-type: text/css; charset: utf-8");
header("cache-control: must-revalidate");
$offset = 365 * 24 * 60 * 60;
$expire = "expires: ".gmdate("D, d M Y H:i:s", time() + $offset)." GMT";
header($expire);
if(!ob_start("ob_gzhandler")) ob_start();
?>
<?php // replace this line with as much CSS code as you want ?>
<?php ob_flush(); ?>
Compress JavaScript content
<?php // compress JS
header("content-type: text/javascript; charset: UTF-8");
header("cache-control: must-revalidate");
$offset = 365 * 24 * 60 * 60;
$expire = "expires: ".gmdate("D, d M Y H:i:s", time() + $offset)." GMT";
header($expire);
if(!ob_start("ob_gzhandler")) ob_start();
?>
<?php // replace this line with as much JavaScript code as you want ?>
<?php ob_flush(); ?>
That’s all there is to it, and to further reduce file size, you should run the actual CSS/JavaScript code through the minifier of your choice.
For more information about either of these methods, check out my articles at Perishable Press:
Compressed CSS Compression http://perishablepress.com/compressed-css-compression/
Compressed JavaScript Compression http://perishablepress.com/compressed-javascript-compression/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-356368-1-1.html 上篇帖子: 哪个PHP培训机构让你不得不爱? 下篇帖子: PHP功能齐全的发送邮件类-php实例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表