php中 js和css优化工具,PHP对所有的页面包含的JS,CSS等文件采用优化压缩

[code]

/*

load: css, js 静态文件

启用 gz压缩、缓存处理、过期处理、文件合并等优化操作

*/

error_reporting(0);

if(extension_loaded('zlib')){

//检查服务器是否开启了zlib拓展

ob_start('ob_gzhandler');

}

$gettype = 'js';

$allowed_content_types    =    array('js');

$getfiles    = explode(',', strip_tags($_GET['f']));

$offset = 60 * 60 * 24 * 7; //过期7天

if($gettype=='css'){

$content_type    =    'text/css';

}elseif($gettype=='js'){

$content_type    =    'application/x-javascript';

}

header ("content-type: ".$content_type."; charset: utf-8");        //注意修改到你的编码

// header ( "cache-control: must-revalidate" );

header ( "cache-control: max-age=".$offset );

header( "Last-Modified: " . gmdate ( "D, d M Y H:i:s", time () ) . "GMT");

header ( "Pragma: max-age=".$offset );

header ( "Expires:" . gmdate ( "D, d M Y H:i:s", time () + $offset ) . " GMT" );

set_cache_limit($offset);

ob_start("compress");

function compress($buffer) {//去除文件中的注释

$buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);

return $buffer;

}

function set_cache_limit($second=1){

$second=intval($second);

if($second==0) {

return;

}

$etag=time()."||".base64_encode( $_SERVER['REQUEST_URI'] );

if(!isset($_SERVER['HTTP_IF_NONE_MATCH'])){

header("Etag:$etag",true,200);

return;

}else{

$id = $_SERVER['HTTP_IF_NONE_MATCH'];

}

list( $time , $uri ) = explode ( "||" , $id );

if($time < (time()-$second))

{//过期了,发送新tag

header("Etag:$etag",true,200);

}else

{//未过期,发送旧tag

header("Etag:$id",true,304);

exit(-1);

}

}

foreach($getfiles as $file){

$fileType = strtolower( substr($file, strrpos($file, '.') + 1 ) );

if(in_array($fileType, $allowed_content_types)){

//包含你的全部css文档

readfile(basename($file));

}else{

echo 'not allowed file type:'.$file;

}

}

//输出buffer中的内容,即压缩后的css文件

if(extension_loaded('zlib')){

ob_end_flush();

}

>

[/code]

用法:

http://www.test.com/js/js.php?t=js&f=jquery-1.7.1.min.js

7c87da463dced739b7dbd762d1090dc2.gif

标签:

上一篇:PHP正则参考

下一篇:Jquery 关联绑定模型,JQ封装模型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值