`

PHP 启用Gzip 压缩进行优化

    博客分类:
  • PHP
 
阅读更多
确定服务器支持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/
分享到:
评论

相关推荐

    php gzip 压缩js或css

    `PHP Gzip`压缩是一种常见的优化技术,它能够有效地减小CSS和JS文件的大小,从而缩短客户端的响应时间。`Gzip`是一种广泛使用的数据压缩算法,通过在服务器端压缩文件后再传输到浏览器,可以显著减少网络带宽的使用...

    gzip 压缩 三种方法

    - **缓存策略**:开启gzip压缩后,应考虑对静态资源设置合适的缓存策略,以减少不必要的压缩计算。 - **文件大小阈值**:对于非常小的文件,压缩可能并不能带来显著的优化,甚至可能因额外的压缩和解压过程而降低...

    php gzip压缩输出的实现方法

    在这个配置中,mod_gzip_on指令开启gzip压缩功能,mod_gzip_dechunk指令允许对分块传输编码的数据进行压缩,而mod_gzip_item指令则用来指定哪些文件类型应当被包括或排除在压缩范围之外。上面的示例配置指定了需要...

    开启TOMCAT6的GZIP压缩

    为了提升用户体验并减轻网络带宽的压力,TOMCAT服务器可以通过启用GZIP压缩功能来优化数据传输。GZIP是一种常用的文件格式与数据压缩算法,能够显著减少文件大小,从而提高传输效率。对于使用TOMCAT6作为应用服务器...

    将PHP程序中返回的JSON格式数据用gzip压缩输出的方法

    1. **比较压缩与非压缩的HTTP输出**:在开启gzip压缩前后的对比,可以看到启用压缩后,相同内容的HTTP响应体积会大大减小,因为gzip是一种高效的文件压缩算法,能够有效减少数据的传输量。 2. **开启Apache的gzip...

    PHP程序加速探索之压缩输出gzip

    // 开启gzip压缩 ob_start("ob_gzhandler"); // 创建输出内容 $output = ''; for($i = 0; $i ; $i++) { $output .= "This is line $i "; } // 输出提示和压缩内容 echo "浏览器支持 gzip 压缩输出"; ...

    php读取远程gzip压缩网页的方法

    在PHP中,当我们尝试从远程服务器获取网页内容时,如果目标站点启用了GZIP压缩,直接使用`file_get_contents`或`cURL`等常规方法可能会导致返回的内容呈现乱码。这是因为这些函数默认不处理GZIP编码的数据。解决这个...

    PHP中开启gzip压缩的2种方法

    网页开启gzip压缩以后,其体积可以减小20%~90%,可以节省下大量的带宽,从而减少页面响应时间,提高用户体验。 php配置改法: 复制代码 代码如下: zlib.output_compression = On ;开启gzip功能 zlib.output_...

    IIS的Gzip压缩图文教程

    2. **服务器响应**: 如果服务器支持且启用了GZip压缩,它会在响应中应用相应的压缩算法,并在响应头中添加`Content-Encoding: gzip`以告知客户端已进行压缩。 3. **客户端解压**: 客户端收到压缩后的数据后,根据...

    php使用gzip压缩传输js和css文件的方法

    总的来说,通过PHP启用Gzip压缩传输可以显著改善网页加载性能,并减少带宽消耗,尤其适用于传输大量静态资源,如JS和CSS文件。开发者可以参考上述文章中的方法,根据实际情况调整并优化自己的代码。

    IIS配置FastCGI PHP5.3 MySQL5.1 Gzip详细教程

    4. Gzip压缩:了解Gzip的作用,如何在IIS中开启Gzip,以及PHP中的Gzip检测和应用。 通过这个教程,读者将能够搭建一个高效运行PHP和MySQL的IIS环境,并利用Gzip提升网站性能。提供的"说明.htm"和"IIS FastCGI ...

    php简单开启gzip压缩方法(zlib.output_compression)

    在讨论如何通过PHP开启gzip压缩的上下文中,首先需要了解gzip压缩是如何工作的,以及它对于网站性能优化的重要性。gzip是一种常用的文件压缩算法,它主要用于减少文件大小,通过压缩,网络传输的内容变小,能够减少...

    php使用curl获取header检测开启GZip压缩的方法

    最后,我们检查响应头中是否包含`Content-Encoding: gzip`,以此判断GZip压缩是否开启。 除了检查GZip压缩,cURL还允许我们设置其他高级选项,例如自定义请求方法、设置HTTP头、处理重定向、超时限制等,这使得cURL...

    设置tomcat启用gzip压缩的具体操作方法

    1. 打开压缩功能:在`&lt;Connector&gt;`节点中添加`compression="on"`,这表示开启gzip压缩。 2. 设置压缩阈值:通过`compressionMinSize`属性设定启用压缩的最小输出内容大小。例如,`compressionMinSize="50"`表示当...

    PHP使用zlib扩展实现GZIP压缩输出的方法详解

    文件,结合PHP代码逻辑以及确保服务器环境支持,可以顺利地在PHP应用中启用GZIP压缩输出功能。需要注意的是,在实际部署前,应该对压缩效果和性能进行充分的测试,以确保达到最佳的压缩效果和性能平衡。

    探讨如何在PHP开启gzip页面压缩实例

    首先,文章中通过示例一展示了使用PHP内置的ob_gzhandler函数来开启gzip压缩。ob_gzhandler是一个输出缓冲函数,它可以自动检测浏览器是否支持gzip压缩,并对输出的页面内容进行压缩。在示例中,首先通过if语句判断...

    apache启用gzip压缩的实现方法

    综上所述,对于部署在Linux服务器上的PHP程序,开启Gzip压缩不仅可以加速网页加载,节省带宽,还能提高搜索引擎的抓取效率,是提升网站性能的必要措施。正确配置Apache服务器的Gzip模块,有助于实现这一目标。

Global site tag (gtag.js) - Google Analytics