PHP 源代码压缩小工具


Posted in PHP onDecember 22, 2009

使用方法:(在命令行运行)

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); 
?>
PHP 相关文章推荐
[原创]PHP中通过ADODB库实现调用Access数据库之修正版本
Dec 31 PHP
php学习笔记 面向对象中[接口]与[多态性]的应用
Jun 16 PHP
php将时间差转换为字符串提示
Sep 07 PHP
linux系统上支持php的 iconv()函数的方法
Oct 01 PHP
关于PHP实现异步操作的研究
Feb 03 PHP
php中数字0和空值的区别分析
Jun 05 PHP
隐性调用php程序的方法
Jun 13 PHP
用PHP代码在网页上生成图片
Jul 01 PHP
如何利用http协议发布博客园博文评论
Aug 03 PHP
PHP编写登录验证码功能 附调用方法
May 19 PHP
[原创]php正则删除html代码中class样式属性的方法
May 24 PHP
如何修改Laravel中url()函数生成URL的根地址
Aug 11 PHP
php 8小时时间差的解决方法小结
Dec 22 #PHP
PHP 分页原理分析,大家可以看看
Dec 21 #PHP
c#中的实现php中的preg_replace
Dec 21 #PHP
php 空格,换行,跳格使用说明
Dec 18 #PHP
PHP 抓取新浪读书频道的小说并生成txt电子书的代码
Dec 18 #PHP
PHP strtotime函数详解
Dec 18 #PHP
php 日期时间处理函数小结
Dec 18 #PHP
You might like
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
聊天室php&amp;mysql(三)
2006/10/09 PHP
php微信开发之批量生成带参数的二维码
2016/06/26 PHP
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
简单通用的JS滑动门代码
2008/12/19 Javascript
js实现兼容IE6与IE7的DIV高度
2010/05/13 Javascript
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
JavaScript 反科里化 this [译]
2012/09/20 Javascript
java、javascript实现附件下载示例
2014/08/14 Javascript
js封装可使用的构造函数继承用法分析
2015/01/28 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
js替换字符串中所有指定的字符(实现代码)
2016/08/17 Javascript
js实现消息滚动效果
2017/01/18 Javascript
es6的数字处理的方法(5个)
2017/03/16 Javascript
基于react组件之间的参数传递(详解)
2017/09/05 Javascript
express框架下使用session的方法
2019/07/31 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
2019/09/26 Javascript
微信小程序按顺序同步执行的两种方式
2019/12/20 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
[19:26]TNC vs EG (BO3)
2018/06/07 DOTA
使用PyCharm配合部署Python的Django框架的配置纪实
2015/11/19 Python
同时安装Python2 &amp; Python3 cmd下版本自由选择的方法
2017/12/09 Python
python编程通过蒙特卡洛法计算定积分详解
2017/12/13 Python
用Python读取几十万行文本数据
2018/12/24 Python
python selenium firefox使用详解
2019/02/26 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
复化梯形求积分实例——用Python进行数值计算
2019/11/20 Python
关于tf.reverse_sequence()简述
2020/01/20 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
小学国庆节活动方案
2014/02/11 职场文书
学雷锋树新风演讲稿
2014/05/10 职场文书
通知的写法
2015/04/23 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书
MySQL 数据表操作
2022/05/04 MySQL