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 相关文章推荐
php5编程中的异常处理详细方法介绍
Jul 29 PHP
php 设计模式之 单例模式
Dec 19 PHP
php 获取客户端的真实ip
Nov 30 PHP
php 提速工具eAccelerator 配置参数详解
May 16 PHP
一道求$b相对于$a的相对路径的php代码
Aug 08 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
Mar 13 PHP
PHP开发框架kohana3 自定义路由设置示例
Jul 14 PHP
php禁止某ip或ip地址段访问的方法
Feb 25 PHP
PHP判断一个字符串是否是回文字符串的方法
Mar 23 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
Nov 06 PHP
php7 图形用户界面GUI 开发示例
Feb 22 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
组合算法的PHP解答方法
2012/02/04 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
PHP5.2下preg_replace函数的问题
2015/05/08 PHP
基于PHP实现短信验证码接口(容联运通讯)
2016/09/06 PHP
window.name代替cookie的实现代码
2010/11/28 Javascript
JavaScript实现在数组中查找不同顺序排列的字符串
2014/09/26 Javascript
jquery操作angularjs对象
2015/06/26 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
JS基础随笔(菜鸟必看篇)
2016/07/13 Javascript
js+html制作简单日历的方法
2017/06/27 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
jQuery图片加载失败替换默认图片方法汇总
2017/11/29 jQuery
js中this对象用法分析
2018/01/05 Javascript
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
js实现同一个页面,多个enter事件绑定的示例
2018/10/10 Javascript
详解Vue中CSS样式穿透问题
2019/09/12 Javascript
vue-router 中 meta的用法详解
2019/11/01 Javascript
[16:27]DOTA2 HEROS教学视频教你分分钟做大人-艾欧
2014/06/11 DOTA
[39:19]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第二场 11.26
2020/11/30 DOTA
[45:34]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.18
2020/12/19 DOTA
Python 爬取携程所有机票的实例代码
2018/06/11 Python
深入flask之异步非堵塞实现代码示例
2018/07/31 Python
python实现高斯投影正反算方式
2020/01/17 Python
QML用PathView实现轮播图
2020/06/03 Python
英国高街电视:High Street TV
2018/05/22 全球购物
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
公司任命书模板
2014/06/06 职场文书
乡镇党建工作汇报材料
2014/08/14 职场文书
2014各大专业毕业生自我评价
2014/09/17 职场文书
工作检讨书范文
2015/01/23 职场文书
2015年安康杯竞赛活动总结
2015/03/26 职场文书
《火烧云》教学反思
2016/02/23 职场文书
思想品德课教学反思
2016/02/24 职场文书
2016年学校禁毒宣传活动工作总结
2016/04/05 职场文书
Golang日志包的使用
2022/04/20 Golang
win10电脑老是死机怎么办?win10系统老是死机的解决方法
2022/08/05 数码科技