Heim > Web-Frontend > js-Tutorial > JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具_javascript技巧

JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具_javascript技巧

PHP中文网
Freigeben: 2016-05-16 18:14:17
Original
1395 Leute haben es durchsucht

昨天分享了 http://jscompress.sinaapp.com/ 这个小工具后,发现大家还是很喜爱的。

因此今天我把它json化了.用json传输数据,也开放了api 

 

本工具所有的功能实现都是由 http://jscompress.sinaapp.com/api 处理.(包括现在可以使用的这个在线压缩) 
所有的数据交换均由 HTTP POST 输入处理后由 json 作为数据输出格式. 

API参数 : http://jscompress.sinaapp.com/api?get={type}&code=(code)&type={compress only}

get={type},{type} 为可选的 compress (压缩) format (格式化) shuffle(混淆) 
code=(code),(code) 为必要的源代码. JavaScript的源代码 
type={compress},{compress} 注意该参数只有压缩的时候生效,可选 1(默认压缩) 2(YUI压缩) 3(GC压缩)


例:使用 CURL... POST 

http://jscompress.sinaapp.com/api?get=compress&code=var a=1;var b=2;&type=2

如果执行成功则返回结果:
{"code":"var a=1,b=2;\n","original_size":"16 Byte","now_size":"13 Byte","status":"Closure 
Compiler \u538b\u7f29\u5b8c\u6210.","minify":"81.25%"}
Nach dem Login kopieren

然后我写了一个php文件,可以调用这个网站的api,把整个目录所有的js文件压缩或者混淆,格式化后保存到一个新目录。

这样就对那些懒上传文件的同学们基于方便了~~

直接下载地址: jstools.rar
高亮显示

代码如下:

<?php 
/* 
/## js 合并和压缩PHP脚本...可用于本地或者服务器. 
/## 本工具只能处理utf-8编码的 *.js 文件.否则会接收不到结果 
@ 风吟 (fengyin.name) 
@ http://jscompress.sinaapp.com/ 
*/ 
set_time_limit(0); 
function JsTools($options = array( 
&#39;basepath&#39; =>&#39;./&#39;, //需要处理的脚本路径... 
&#39;compiled&#39; =>&#39;./compiled/&#39;, //处理后新文件的路径... 
&#39;type&#39; =>&#39;compress&#39;, //可选 compress (压缩) format (格式化) shuffle (混淆) 
&#39;is_merger&#39; =>true, // 是否需要把全部文件合并再进行处理 (压缩,格式化,混淆) 
&#39;engine&#39; =>&#39;1&#39;//此项只对 type 为 compress 时有效,1(默认) 2 (yui) 3(Closure Compiler) 
/* 
yui 和 Google Closure Compiler 压缩是不可逆的,一般情况下使用默认即可 
不推荐使用混淆. 
*/ 
)){ 
if (is_dir($options[&#39;basepath&#39;])) { 
if ($dh = opendir($options[&#39;basepath&#39;])) { 
while (($file = readdir($dh)) !== false) { 
if (strpos($file, &#39;.js&#39;) !== false && strpos($file, &#39;.min.js&#39;) === false) { 
$js[] = $file; 
} 
} 
closedir($dh); 
} 
} 
if ($options[&#39;is_merger&#39;]) { 
foreach($js as $jsfile) { 
$jscode.= file_get_contents($jsfile).&#39;;&#39;; 
} 
$jscode = json_decode(api($jscode, $options[&#39;type&#39;], $options[&#39;engine&#39;]), true); 
file_put_contents($options[&#39;compiled&#39;].&#39;all.min.js&#39;, $jscode[&#39;code&#39;]); 
} else { 
foreach($js as $jsfile) { 
$jscode = json_decode(api(file_get_contents($jsfile), $options[&#39;type&#39;], $options[&#39;engine&#39;]), true); 
file_put_contents($options[&#39;compiled&#39;].str_replace(&#39;.js&#39;, &#39;.min.js&#39;, $jsfile), $jscode[&#39;code&#39;]); 
} 
} 
} 
function api($code, $type, $engine) { 
$ch = curl_init(&#39;http://jscompress.sinaapp.com/api&#39;); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, &#39;get=&#39;.$type.&#39;&code=&#39;.urlencode($code).&#39;&type=&#39;.$engine); 
$output = curl_exec($ch); 
curl_close($ch); 
return $output; 
} 
JsTools(); 
?>
Nach dem Login kopieren

以上就是JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具_javascript技巧的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage