Home > Web Front-end > JS Tutorial > JavaScript(JS) compression / obfuscation / formatting batch processing tool_javascript skills

JavaScript(JS) compression / obfuscation / formatting batch processing tool_javascript skills

PHP中文网
Release: 2016-05-16 18:14:17
Original
1359 people have browsed it

After sharing http://jscompress.sinaapp.com/ yesterday, I found that everyone still likes it very much.

So today I converted it to json. Use json to transmit data and open the api

All the functions of this tool are implemented Processed by http://jscompress.sinaapp.com/api. (Including the online compression that can be used now)
All data exchanges are processed by HTTP POST input and json is used as the data output format .

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

get={type}, {type} is optional compress (compression) format (formatting) shuffle (confusion)
code=(code), (code) is the necessary source code. JavaScript source code
type={compress}, {compress} Note that this parameter only takes effect when compressing, optional 1 (default compression) 2 (YUI compression) 3 (GC compression)


Example: Use CURL... POST

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

If the execution is successful, the result will be returned:
{"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%"}
Copy after login

Then I wrote a php file, which can call the api of this website to compress or obfuscate and format all the js files in the entire directory. Then save it to a new directory.

This is convenient for those students who are too lazy to upload files~~

Direct download address: jstools.rar
Highlight

The code is as follows:

<?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(); 
?>
Copy after login

The above is the content of JavaScript(JS) compression/obfuscation/formatting batch processing tool_javascript skills. For more related content, please pay attention to the PHP Chinese website (www. php.cn)!


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template