5
回答
关于用php压缩js代码的函数问题请教!!!!请大神~~~
开发十年,就只剩下这套Java开发体系了   

这是是我自己写的,但是替换完成之后出现了问题,说少了一个分号。。。。请大神帮忙给个好的或者给点建议~\(≧▽≦)/~啦啦啦


$_codes = file_get_contents( $_file ); 
$_codes = preg_replace('/(\/\/)+.*/i', '', $_codes); 
$_codes = preg_replace('/var(\s)+/i', 'var[#]', $_codes);																							//保留语法必要空格符(以[#]方式保留)
$_codes = preg_replace('/typeof(\s)+/i', 'typeof[#]', $_codes);																				//保留typeof var 关键字定义
$_codes = preg_replace('/return(\s)+/i', 'return[#]', $_codes);																					//保留return var 关键字定义
$_codes = preg_replace('/new(\s)+/i', 'new[#]', $_codes);																						//保留new var 关键字定义
$_codes = preg_replace('/else(\s)if+/i', 'else[#]if', $_codes);																					//保留else if 关键字定义
$_codes = preg_replace('/for\s*\(\s+([0-9a-z_]+)\s+in\s+([0-9a-z_]+)\s+\)/i', 'for($1[#]in[#]$2)', $_codes);		//保留for( key in obj ) 循环
$_codes = preg_replace('/(\s)*/i', '', $_codes);																											//替换掉空格
$_codes = preg_replace('/\/(\*)+(.*)(\*)+\//iU', '', $_codes);																						//替换块注释符号(/**/) 
file_put_contents($_file, preg_replace('/\[#\]/i', ' ', $_codes), LOCK_EX);																	//恢复语法必要空格符


PHP
举报
Koma
发帖于5年前 5回/495阅
共有5个答案 最后回答: 5年前

(⊙o⊙)… 怎么插入的代码乱成这样儿了。。。。再来一次

$_codes = file_get_contents( $_file ); 	
$_codes = preg_replace('/(\/\/)+.*/i', '', $_codes);
//保留语法必要空格符(以[#]方式保留)
$_codes = preg_replace('/var(\s)+/i', 'var[#]', $_codes);
//保留typeof var 关键字定义
$_codes = preg_replace('/typeof(\s)+/i', 'typeof[#]', $_codes);
//保留return var 关键字定义	
$_codes = preg_replace('/return(\s)+/i', 'return[#]', $_codes);	
//保留new var 关键字定义	
$_codes = preg_replace('/new(\s)+/i', 'new[#]', $_codes);
//保留else if 关键字定义	
$_codes = preg_replace('/else(\s)if+/i', 'else[#]if', $_codes);	
//保留for( key in obj ) 循环					
$_codes = preg_replace('/for\s*\(\s+([0-9a-z_]+)\s+in\s+([0-9a-z_]+)\s+\)/i', 'for($1[#]in[#]$2)', $_codes);	
//替换掉空格
$_codes = preg_replace('/(\s)*/i', '', $_codes);
//替换块注释符号(/**/)	
$_codes = preg_replace('/\/(\*)+(.*)(\*)+\//iU', '', $_codes);	
//恢复语法必要空格符
file_put_contents($_file, preg_replace('/\[#\]/i', ' ', $_codes), LOCK_EX);

这样做有啥意义?
--- 共有 1 条评论 ---
Koma如果js文件大的话就可以变小很多啊,传输的时候会快些咯,其实我是模仿开源中国的那个js压缩工具来的 5年前 回复
js css html这些静态文件的压缩,明摆着是服务器的事情,用动态语言何必呢
--- 共有 1 条评论 ---
Koma(⊙o⊙)… 我本意不是通过服务器端压缩的,我只是想用php先测试出来,然后做个客户端的js压缩工具,php版的是当产品上线前可以运行下这端代码将js压缩的。 5年前 回复
php zlib库为啥不用。现成的库不用。
--- 共有 2 条评论 ---
Koma跟你说的不同,我是想把写好的js程序压缩变小,其本质就是去掉空格、注释等。就跟开源中国里那个js压缩工具一样。能不能给个思路或者代码咯。。。别管那么多啦 5年前 回复
苏生不惑没用过zlib呢,求链接 5年前 回复
顶部