当前位置: 首页 > 图文教程 > 网络编程 > PHP > PHP 源代码压缩小工具

PHP
php基础知识:类与对象(5) static
谈谈新手如何学习PHP
Breeze 文章管理系统 v1.0.0正式发布
缓存技术详谈—php
php 进阶:实现无限分类
落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
PHP读MYSQL中文乱码的解决方法
亲密接触PHP之PHP语法学习笔记1
IIS环境下快速安装、配置和调试PHP5.2.0
转PHP手册及PHP编程标准
PR值查询 | PageRank 查询
PHP函数utf8转gb2312编码
PHP 模板高级篇总结
PHP 编程请选择正确的文本编辑软件
使用 MySQL 开始 PHP 会话
PHP 的几个配置文件函数
剖析 PHP 中的输出缓冲
Windows2003 下 MySQL 数据库每天自动备份
30分钟学会用PHP写带数据库的简单通讯录
php下看实例学正则表达式

PHP 源代码压缩小工具


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 201 ::
收藏到网摘: n/a

所有的PHP文件包在一个PHP文件移除所有的注释移除多余空格保持输出纯PHP(即不需要任何额外的处理步骤来解析这个文件) 使用方法:(在命令行运行)
复制代码 代码如下:

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);
?>