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做的端口嗅探器--可以指定网站和端口
Oct 09 PHP
PHP生成网页快照 不用COM不用扩展.
Feb 11 PHP
PHP strncasecmp字符串比较的小技巧
Jan 04 PHP
PHP系列学习之日期函数使用介绍
Aug 18 PHP
mac环境中使用brew安装php5.5.15
Aug 18 PHP
php实现过滤表单提交中html标签的方法
Oct 17 PHP
dedecms集成财付通支付接口
Dec 28 PHP
PHP检测链接是否存在的代码实例分享
May 06 PHP
PHP单链表的实现代码
Jul 05 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
Jul 13 PHP
PHP如何读取由JavaScript设置的Cookie
Mar 22 PHP
Discuz不使用插件实现简单的打赏功能
Mar 21 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
根德Grundig S400/S500/S700电路分析
2021/03/02 无线电
提升PHP执行速度全攻略
2006/10/09 PHP
php实现微信发红包
2015/12/05 PHP
详解PHP中的null合并运算符
2015/12/30 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
Javascript简单实现可拖动的div
2013/10/22 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
2013/11/21 Javascript
JS将制定内容复制到剪切板示例代码
2014/02/11 Javascript
jQuery使用ajaxSubmit()提交表单示例
2014/04/04 Javascript
input标签内容改变的触发事件介绍
2014/06/18 Javascript
IE中document.createElement的iframe无法设置属性name的解决方法
2015/09/14 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
JavaScript仿淘宝页面图片滚动加载及刷新回顶部的方法解析
2016/05/24 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
JS访问DOM节点方法详解
2016/11/29 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
js实现图片上传预览原理分析
2017/07/13 Javascript
Angular中点击li标签实现更改颜色的核心代码
2017/12/08 Javascript
webpack打包js文件及部署的实现方法
2017/12/18 Javascript
详解webpack 热更新优化
2018/09/13 Javascript
vue-router的使用方法及含参数的配置方法
2018/11/13 Javascript
JQuery特殊效果和链式调用操作示例
2019/05/13 jQuery
python将MongoDB里的ObjectId转换为时间戳的方法
2015/03/13 Python
python如何通过protobuf实现rpc
2016/03/06 Python
python爬虫实战之爬取京东商城实例教程
2017/04/24 Python
Python内建函数之raw_input()与input()代码解析
2017/10/26 Python
python实现的生成word文档功能示例
2019/08/23 Python
Pytorch Tensor基本数学运算详解
2019/12/30 Python
如何在django中运行scrapy框架
2020/04/22 Python
500行python代码实现飞机大战
2020/04/24 Python
在python3.64中安装pyinstaller库的方法步骤
2020/06/02 Python
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
2012/03/14 面试题
网络工程与软件技术毕业生自荐信
2013/09/24 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
数学教师个人工作总结
2015/02/06 职场文书
python3实现Dijkstra算法最短路径的实现
2021/05/12 Python