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 相关文章推荐
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
Oct 09 PHP
使用数据库保存session的方法
Oct 09 PHP
PHP开发环境配置(MySQL数据库安装图文教程)
Apr 28 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
Aug 16 PHP
php的ajax简单实例
Feb 27 PHP
destoon复制新模块的方法
Jun 21 PHP
浅析PHP中strlen和mb_strlen的区别
Aug 31 PHP
php基于str_pad实现卡号不足位数自动补0的方法
Nov 12 PHP
Laravel中使用自己编写类库的3种方法
Feb 10 PHP
php获取网页里所有图片并存入数组的方法
Apr 06 PHP
PHP基于ORM方式操作MySQL数据库实例
Jun 21 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
Dec 12 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 4.2书写安全的脚本
2006/10/09 PHP
PHP与MySQL开发中页面出现乱码的一种解决方法
2007/07/29 PHP
JavaScript脚本性能优化注意事项
2008/11/18 Javascript
JavaScript入门教程(11) js事件处理
2009/01/31 Javascript
defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
2010/04/27 Javascript
javascript当中的代码嗅探扩展原生对象和原型(prototype)
2013/01/11 Javascript
JS仿百度搜索自动提示框匹配查询功能
2013/11/21 Javascript
JS动态给对象添加事件的简单方法
2016/07/19 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
JavaScript 字符串常用操作小结(非常实用)
2016/11/30 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果示例【附demo源码下载】
2017/03/09 Javascript
JavaScript实现动态添加Form表单元素的方法示例
2017/08/14 Javascript
提升页面加载速度的插件InstantClick
2017/09/12 Javascript
深入理解Vue router的部分高级用法
2018/08/15 Javascript
vue项目中实现图片预览的公用组件功能
2018/10/26 Javascript
微信小程序实现上拉加载功能
2019/11/20 Javascript
ssm+vue前后端分离框架整合实现(附源码)
2020/07/08 Javascript
Python列表append和+的区别浅析
2015/02/02 Python
Pycharm学习教程(2) 代码风格
2017/05/02 Python
django 发送手机验证码的示例代码
2018/04/25 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
python  创建一个保留重复值的列表的补码
2018/10/15 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
详解python3 + Scrapy爬虫学习之创建项目
2019/04/12 Python
Scrapy框架基本命令与settings.py设置
2020/02/06 Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
2020/03/07 Python
使用HTML5 Canvas API绘制弧线的教程
2016/03/22 HTML / CSS
工厂保洁员岗位职责
2013/12/04 职场文书
满月酒主持词
2014/03/27 职场文书
副校长竞聘演讲稿
2014/09/01 职场文书
缓刑人员思想汇报500字
2014/09/12 职场文书
银行奉献演讲稿
2014/09/16 职场文书
2015年班组工作总结
2015/04/20 职场文书
班主任工作总结范文
2015/08/13 职场文书
2016年小学六一儿童节活动总结
2016/04/06 职场文书