PHP压缩javascritp 与CSS的例子

首先将所有 CSS 放到一个目录里,然后在此目录新建一个空的 CSS 文件,命名为 css.php(其实除了后缀命名随便)。

然后在 PHP 文件里放下边的代码:

 代码如下 复制代码

<?php
header('Content-type: text/css');
ob_start("compress");
function compress($buffer) {
 $buffer = preg_replace('!/*[^*]**+([^/][^*]**+)*/!', '', $buffer);
 $buffer = str_replace(array("rn", "r", "n", "t", '  ', '    ', '    '), '', $buffer);
 return $buffer;
}
/*include('colorpicker.css');
include('jquery-ui.css');
include('style.css');
include('switchery.min.css');*/
foreach( glob( "*.css" ) as $filename ) include $filename;
ob_end_flush();

引入 CSS 文件的代码换成引入这个 PHP 文件,例如:

<link rel='stylesheet' id='style-css'  href='/css/css.php' type='text/css' media='all' />

压缩多个css为一个css

 代码如下 复制代码

<?php
/*
Compress multiple CSS files into one and cache for an hour.

Use the same code for Javascript, but replace below "text/css" with "text/javascript" and of course make sure you include .js files instead of .css ones.
*/  www.111cn.net
ob_start("ob_gzhandler");
header("Content-type: text/css; charset: UTF-8");    
header("Expires: ".gmdate("D, d M Y H:i:s", time() + 60*60)." GMT");

include('somefile.css');
echo "nn";
include('anotherfile.css');
echo "nn";

ob_flush();

下面整理可压缩css,js的函数

 代码如下 复制代码

/**
 * 合并css样式为一个文件
 *
 * @param unknown_type $urls
 * @param unknown_type $path
 * @param unknown_type $tmpl_path
 * @return unknown
 */
function parse_css($urls,$path="./static/",$tmpl_path='.'){
    $url = md5(implode(',',$urls));
    $css_url = $path.$url.'.css';
    if(!file_exists($css_url)){
        if(!file_exists($path))mkdir($path,0777);
        $css_content = '';
        foreach($urls as $url){
         $css_content .= @file_get_contents($url);
        }
        $css_content = preg_replace("/[rn]/",'',$css_content);
        $css_content = str_replace("../images/",$tmpl_path."/images/",$css_content);
        @file_put_contents($css_url,$css_content);
    }
    return $css_url;
}
/**
 * 合并js www.111cn.net为一个文件
 *
 * @param unknown_type $urls
 * @param unknown_type $path
 * @return unknown
 */
function parse_script($urls,$path="./static/"){
    $url = md5(implode(',',$urls));
    $js_url = $path.$url.'.js';
    if(!file_exists($js_url))
    {
        if(!file_exists($path))mkdir($path,0777);
        require_once "inc/javascriptpacker.php";
        $js_content = '';
        foreach($urls as $url)
        {
            $append_content = @file_get_contents($url)."rn";
            $packer = new JavaScriptPacker($append_content);
            $append_content = $packer->pack();
            $js_content .= $append_content;
        }
        @file_put_contents($js_url,$js_content);
    }
    return $js_url;
}
前台
js调用
<?php
$pagejs[] = $tplurl."js/jump.js";
$jsfile=parse_script($pagejs,"./template/default/js/",".");
?>
<script type="text/javascript" src="<?=$jsfile?>"></script>
css调用
<?php
$pagecss[] = $tplurl."style/index_top.css";
$pagecss[] = $tplurl."style/index.css";
$cssfile=parse_css($pagecss,"./template/default/style/",".");
?>
<link rel="stylesheet" type="text/css" href="<?=$cssfile?>" />

PHP 文件里就包含了所有被压缩的 CSS 代码,而且可以自动引入 CSS 目录里的所有 CSS 文件,不用在新建 CSS 文件的时候再修改这个 PHP 文件。

时间: 2024-10-23 03:08:57

PHP压缩javascritp 与CSS的例子的相关文章

.net输出重写压缩页面文件的小例子

这篇文章介绍了.net输出重写压缩页面文件的小例子,有需要的朋友可以参考一下   不知你是否留意过,有一些网站的html代码都是混在一起,没有任何空格和换行等多余字符.它的好处不用多说--界面大小绝对优化.或许您在想,他 们这样做大大降低了可读性.的确,我们看是很乱,只能借用第三方软件重新布局代码.但是,我想他们开发时使用的源码不可能是混一团,前不久发现一个页面基 类,大概可以解释这个问题,不多说,看源码: 复制代码 代码如下: using System; using System.Data;

在服务端合并和压缩JavaScript和CSS文件

CSS Sprites和图像映射现在已经随处可见了,但由于IE6和IE7不支持Data URI以及性能问题,这项技术尚未大量使用.目前大部分网页中的JavaScript和CSS文件数量和开发时一致,少量的网页会根据实际情况采取本地合并,这些合并中相当多的是有选择地手动完成,每次新的合并都需要重新在本地完成并上传到服务器,比较的随意和繁琐,同样文件的压缩也有类似的情况.而利用服务端的合并和压缩,我们就可以按照开发的逻辑尽可能让文件的颗粒度变小,利用网页中URL的规则来自动实现文件的合并和压缩,这会

使用 PostCSS 压缩和优化CSS实例

关于如何使用 PostCSS 插件跨浏览器兼容,请点击这里: http://www.111cn.net/cssdiv/css/98338.htm 本文主要讲的内容有: 通过@import将多个样式组合为一个,即使你的一些样式来自Bower组件或npm模块,都可以确保你你只需要请求一个单独的http,加载网站的CSS:匹配媒体查询,允许你将多个地点使用相同的媒体查询组合成一个:使用cssnano执行各种优化,删除空白和注释,并且压缩代码. 设置项目 你需要做的第一件事情是使用Gulp或Grunt设

nodejs合并压缩javascript和css的方法教程

对于压缩工具前端攻城师最常见的就是雅虎的Yui Compressor / Google的Closure Compiler了. 对比其他压缩工具相对在JS和CSS压缩领域比较成熟,压缩率也比较好. 一般会选择结合ANT实现压缩并合并,效果也不错,但是比较偏向个人,团队协作每个人都部署java/ant有些麻烦. 对于个人开发使用ANT的方案也是相对不错的选择.对于团队,最好的解决办法是在服务端压缩,大家只需要登录并执行一个统一的脚本. 下面分享下大致的测试结果,和改用nodejs压缩合并js/css

Ant+YUICompressor 合并压缩JS和CSS代码实例

在实际项目中,推荐的是一个html对应一个JS文件和一个CSS文件.这样做可以减少HTTP请求,众所周知,一个HTTP请求的延迟远比下载一个大点的文件大得多. 所以从程序员来看:我要分文件,分模块写.不然代码太混乱了.(多文件) 客户(网站的使用者)来看:我要良好的用户体验,越快越好.(少文件,文件一多HTTP请求会很多) 这就产生了冲突,不过有需求就有市场,我们聪明的前端攻城狮也有自己的方法解决.--链接文件与压缩大法,也就是标题"使用Ant和YUICompressor链接合并压缩你的JS和C

服务端合并和压缩JS和CSS文件

Web性能优化最佳实践中最重要的一条是减少HTTP请求,它也是YSlow中比重最大的一条规则.减少HTTP请求的方案主要有合并JavaScript和CSS文件.CSS Sprites.图像映射(Image Map)和使用Data URI来编码图片.CSS Sprites和图像映射现在已经随处可见了,但由于IE6和IE7不支持Data URI以及性能问题,这项技术尚未大量使用.目前大部分网页中的JavaScript和CSS文件数量和开发时一致,少量的网页会根据实际情况采取本地合并,这些合并中相当多

使用grunt合并压缩js、css文件

需要了解的知识: 1.nodejs的安装与命令行使用 2.nodejs安装应用 3.grunt的初步了解 本文已假定读者已经熟悉以上知识.   好,我们继续: 任务1:将src目录下的所有zepto及插件合并,并压缩. --src/ ajax.js assets.js callbacks.js data.js deferred.js detect.js event.js form.js fx.js fx_methods.js gesture.js ie.js ios3.js selector.j

关于webStrom-11.1配置less且自动生成.css和自动压缩为.min.css/.min.js

网上看过很多配置思路,自己总结了以下, 就把我个人配置的顺序以及材料分享下,webstrom以下简称WB 1.配置less需要安装nodejs,自行安装.因为要用到npm.我是直接把npm解压到C盘根目录的,先下载解压好待用 npm解压包百度云下载地址:http://pan.baidu.com/s/1bpdnmGZ (yuicompressor-2.4.2.jar 这个是WB配置让CSS或者JS自动生成.mincss/.minjs的压缩工具,不是配置LESS的工具哦, 使用很简单不用解压,比我直

ASP.NET MVC中使用Bundle打包压缩js和css的方法_实用技巧

在ASP.NET MVC4中(在WebForm中应该也有),有一个叫做Bundle的东西,它用来将js和css进行压缩(多个文件可以打包成一个文件),并且可以区分调试和非调试,在调试时不进行压缩,以原始方式显示出来,以方便查找问题. 具体优势可自行百度或参看官方介绍:http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification 这里仅简单记录下如何使用. 首先,如果是使用的ASP.NET MVC4基本或者其他内容更丰富的模板,B