PHP 源代碼壓縮小工具
更新時(shí)間:2009年12月22日 22:49:59 作者:
所有的PHP文件包在一個(gè)PHP文件移除所有的注釋移除多余空格保持輸出純PHP(即不需要任何額外的處理步驟來解析這個(gè)文件)
使用方法:(在命令行運(yùn)行)
php compactor.php DESTINATION.php SOURCE.php
下載: compactor.php
#!/usr/bin/env php
<?php
/**
* Compact PHP code.
*
* Strip comments, combine entire library into one file.
*/
if ($argc < 3) {
print "Strip unecessary data from PHP source files.\n\n\tUsage: php compactor.php DESTINATION.php SOURCE.php";
exit;
}
$source = $argv[2];
$target = $argv[1];
print "Compacting $source into $target.\n";
include $source;
$files = get_included_files();
print_r($files);
$out = fopen($target, 'w');
fwrite($out, '<?php' . PHP_EOL);
fwrite($out, '// QueryPath. Copyright (c) 2009, Matt Butcher.' . PHP_EOL);
fwrite($out, '// This software is released under the LGPL, v. 2.1 or an MIT-style license.' . PHP_EOL);
fwrite($out ,'// http://opensource.org/licenses/lgpl-2.1.php');
fwrite($out, '// http://querypath.org.' . PHP_EOL);
foreach ($files as $f) {
if ($f !== __FILE__) {
$contents = file_get_contents($f);
foreach (token_get_all($contents) as $token) {
if (is_string($token)) {
fwrite($out, $token);
}
else {
switch ($token[0]) {
case T_REQUIRE:
case T_REQUIRE_ONCE:
case T_INCLUDE_ONCE:
// We leave T_INCLUDE since it is rarely used to include
// libraries and often used to include HTML/template files.
case T_COMMENT:
case T_DOC_COMMENT:
case T_OPEN_TAG:
case T_CLOSE_TAG:
break;
case T_WHITESPACE:
fwrite($out, ' ');
break;
default:
fwrite($out, $token[1]);
}
}
}
}
}
fclose($out);
?>
復(fù)制代碼 代碼如下:
php compactor.php DESTINATION.php SOURCE.php
下載: compactor.php
復(fù)制代碼 代碼如下:
#!/usr/bin/env php
<?php
/**
* Compact PHP code.
*
* Strip comments, combine entire library into one file.
*/
if ($argc < 3) {
print "Strip unecessary data from PHP source files.\n\n\tUsage: php compactor.php DESTINATION.php SOURCE.php";
exit;
}
$source = $argv[2];
$target = $argv[1];
print "Compacting $source into $target.\n";
include $source;
$files = get_included_files();
print_r($files);
$out = fopen($target, 'w');
fwrite($out, '<?php' . PHP_EOL);
fwrite($out, '// QueryPath. Copyright (c) 2009, Matt Butcher.' . PHP_EOL);
fwrite($out, '// This software is released under the LGPL, v. 2.1 or an MIT-style license.' . PHP_EOL);
fwrite($out ,'// http://opensource.org/licenses/lgpl-2.1.php');
fwrite($out, '// http://querypath.org.' . PHP_EOL);
foreach ($files as $f) {
if ($f !== __FILE__) {
$contents = file_get_contents($f);
foreach (token_get_all($contents) as $token) {
if (is_string($token)) {
fwrite($out, $token);
}
else {
switch ($token[0]) {
case T_REQUIRE:
case T_REQUIRE_ONCE:
case T_INCLUDE_ONCE:
// We leave T_INCLUDE since it is rarely used to include
// libraries and often used to include HTML/template files.
case T_COMMENT:
case T_DOC_COMMENT:
case T_OPEN_TAG:
case T_CLOSE_TAG:
break;
case T_WHITESPACE:
fwrite($out, ' ');
break;
default:
fwrite($out, $token[1]);
}
}
}
}
}
fclose($out);
?>
相關(guān)文章
PHP in_array()函數(shù)基本語法及嚴(yán)格比較使用實(shí)例
PHP是一種常用的服務(wù)器端腳本語言,提供了豐富的內(nèi)置函數(shù)來簡化開發(fā)過程,其中,in_array()函數(shù)是一種非常有用的函數(shù),用于判斷數(shù)組中是否存在指定的值,本文將詳細(xì)介紹in_array()函數(shù)的用法,并提供具體的代碼示例2024-01-01
php設(shè)計(jì)模式之組合模式實(shí)例詳解【星際爭霸游戲案例】
這篇文章主要介紹了php設(shè)計(jì)模式之組合模式,結(jié)合星際爭霸游戲案例形式分析了php設(shè)計(jì)模式之組合模式相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-03-03
thinkPHP實(shí)現(xiàn)上傳圖片及生成縮略圖功能示例
這篇文章主要介紹了thinkPHP實(shí)現(xiàn)上傳圖片及生成縮略圖功能,結(jié)合實(shí)例形式分析了thinkPHP圖片上傳及縮略圖設(shè)置、生成、保存、數(shù)據(jù)庫寫入等相關(guān)操作技巧,需要的朋友可以參考下2017-10-10
Yii數(shù)據(jù)讀取與跳轉(zhuǎn)參數(shù)傳遞用法實(shí)例分析
這篇文章主要介紹了Yii數(shù)據(jù)讀取與跳轉(zhuǎn)參數(shù)傳遞用法,結(jié)合實(shí)例形式分析了Yii中read()與readAll()方法的相關(guān)使用技巧,需要的朋友可以參考下2016-07-07
php使用多個(gè)進(jìn)程同時(shí)控制文件讀寫示例
這篇文章主要介紹了php使用多個(gè)進(jìn)程同時(shí)控制文件讀寫示例,需要的朋友可以參考下2014-02-02
Laravel生命周期啟動(dòng)(從創(chuàng)建應(yīng)用實(shí)例到注冊基礎(chǔ)服務(wù))過程解析
這篇文章主要介紹了Laravel生命周期啟動(dòng)過程解析,從創(chuàng)建應(yīng)用實(shí)例到注冊基礎(chǔ)服務(wù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10

