加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
compress_tool.php 5.17 KB
一键复制 编辑 原始数据 按行查看 历史
zhaosm 提交于 2024-10-22 16:53 . master
<?php
echoCSSFile('public/assets/css/common','all.min.css','public/assets/css/compress_css/all.min.css','css',true);
echoUtilsFile('utils-all.js','public/assets/utils/utils-all.min.js');
echo "压缩完成";
function echoUtilsFile($demo_file,$demo_min_file) {
$content = ''; //合并内容
$file_list = [
'public/assets/lib/wow/wow.min.js',
'public/assets/utils/dateTime.js',
'public/assets/iconfont/iconfont.js',
'public/assets/lib/count/count.js',
'public/assets/utils/utils.js',
'public/assets/lib/carousel/owl.carousel.min.js',
'public/assets/utils/share.js',
'public/assets/api/basic.js'];
for ($i=0; $i<count($file_list); $i++)
{
/*$content = file_get_contents($file_list[$i]).$content;*/
$content = $file_list[$i].' '.$content;
}
// file_put_contents($demo_file,$content);
$command = "uglifyjs ".$content." -m -c -o ".$demo_min_file;
exec($command,$array);
echo "压缩脚本文件中 \n";
}
function echoCSSFile($path,$demo_file,$demo_min_file,$file_ext,$recursive = false) {
$jarPath = 'yuicompressor-2.4.8.jar'; //压缩工具地址
/* $path = 'public/assets/utils'; //目标路径
$demo_file = 'demo.js'; //输出合并文件的位置
$demo_min_file = 'demo.min.js'; //输出压缩文件的位置
$file_ext = 'js'; //文件后缀名*/
$file_list = []; //文件目录
$content = ''; //合并内容
getDirFilesLists($path,$file_list,$recursive,[$file_ext]);
/*var_dump($file_list);*/
for ($i=0; $i<count($file_list); $i++)
{
if (strpos($file_list[$i], $demo_file) === false && strpos($file_list[$i], 'animate') === false && strpos($file_list[$i], 'bootstrap') === false) {
echo $file_list[$i]." \n";
$content = file_get_contents($file_list[$i]).$content;
}
}
file_put_contents($demo_file,$content);
$command = "java -jar ".$jarPath." ".$demo_file." > ".$demo_min_file." --charset utf-8";
exec($command,$array);
echo "压缩css文件完毕 \n";
}
function echoJSFile($path,$demo_file,$demo_min_file,$file_ext,$recursive = false) {
/* $path = 'public/assets/utils'; //目标路径
$demo_file = 'demo.js'; //输出合并文件的位置
$demo_min_file = 'demo.min.js'; //输出压缩文件的位置
$file_ext = 'js'; //文件后缀名*/
$file_list = []; //文件目录
$content = ''; //合并内容
getDirFilesLists($path,$file_list,$recursive,[$file_ext]);
for ($i=0; $i<count($file_list); $i++)
{
/*$content = file_get_contents($file_list[$i]).$content;*/
$content = $file_list[$i].' '.$content;
}
// file_put_contents($demo_file,$content);
$command = "uglifyjs ".$content." -m -c -o ".$demo_min_file;
exec($command,$array);
echo '压缩'.$demo_min_file."文件中 \n";
}
//java -jar yuicompressor-2.4.8.jar demo.js > demo.min.js
/*
* 获取指定目录下指定文件后缀的函数
* @$path 文件路径
* @$ext 文件后缀名,默认为false为不指定,如果指定,请以数组方式传入
* @$filename 使用时请提前赋值为空数组
* @$recursive 是否递归查找,默认为false
* @$baseurl 是否包含路径,默认包含
*/
function getDirFilesLists($path,&$filename,$recursive = false,$ext = false,$baseurl = true){
if(!$path){
die('请传入目录路径');
}
$resource = opendir($path);
if(!$resource){
die('你传入的目录不正确');
}
//遍历目录
while ($rows = readdir($resource)){
//如果指定为递归查询
if($recursive) {
if (is_dir($path . '/' . $rows) && $rows != "." && $rows != "..") {
getDirFilesLists($path . '/' . $rows, $filename,$resource,$ext,$baseurl);
} elseif ($rows != "." && $rows != "..") {
//如果指定后缀名
if($ext) {
//必须为数组
if (!is_array($ext)) {
die('后缀名请以数组方式传入');
}
//转换小写
foreach($ext as &$v){
$v = strtolower($v);
}
//匹配后缀
$file_ext = strtolower(pathinfo($rows)['extension']);
if(in_array($file_ext,$ext)){
//是否包含路径
if($baseurl) {
$filename[] = $path . '/' . $rows;
}else{
$filename[] = $rows;
}
}
}else{
if($baseurl) {
$filename[] = $path . '/' . $rows;
}else{
$filename[] = $rows;
}
}
}
}else{
//非递归查询
if (is_file($path . '/' . $rows) && $rows != "." && $rows != "..") {
if($baseurl) {
$filename[] = $path . '/' . $rows;
}else{
$filename[] = $rows;
}
}
}
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化