简单用php压缩css、js输出

2023-10-21 13:54:26 浏览数 (2)

所谓的压缩,无非就是把换行空格等符号替换为空

css

代码语言:javascript复制
<?php  
  header('Content-type: text/css');  
  ob_start("compress");  
  function compress($buffer) {
      $buffer = preg_replace('!/*[^*]** ([^/][^*]** )*/!', '', $buffer);
      $buffer = str_replace(array(" 
      ", "r", "n", "t", '  ', '    ', '    '), '', $buffer);
      return $buffer;
  }
  //文件太多的话可以自行写一个递归
  include('第一个CSS文件');   //例如当前PHP文件下的 ./test.css
  include('第二个CSS文件');   //复制调用更多css文件 ./test1.css
  ob_end_flush();  //浏览器打开,输出压缩后的内容
?>

js

代码语言:javascript复制
<?php
error_reporting(E_ALL & ~E_NOTICE);
if (extension_loaded('zlib')) {
    ob_start('ob_gzhandler');
}
header("content-type:application/x-javascript; charset: UTF-8");
header("cache-control: must-revalidate");
$offset = 60 * 60 * 24; //js文件的距离现在的过期时间,这里设置为一天
$expire = "expires: " . gmdate("D, d M Y H:i:s", time()   $offset) . " GMT";
header($expire);
ob_start("compress");
function compress($buffer)
{
    $buffer = preg_replace('///.*/', '', $buffer);
    $buffer = str_replace(array("
        ", "r", "n", "t", '  ', '    ', '    '), '', $buffer);
    return $buffer;
}

include('js文件一'); //例如当前PHP文件下的main.js
include('js文件二'); //复制调用更多JS文件
if (extension_loaded('zlib')) {
    ob_end_flush(); //输出压缩后的内容
}
?>

0 人点赞