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

PHP
php获取mysql版本的几种方法小结
php下判断数组中是否存在相同的值array_unique
PHP中ADODB类详解
常用的php ADODB使用方法集锦
用phpmyadmin更改mysql5.0登录密码
MySQL修改密码方法总结
使用 MySQL Date/Time 类型
How do I change MySQL timezone?
mysql时区问题
某大型网络公司应聘时的笔试题目附答案
PHP连接access数据库
优化PHP代码的40条建议
php简单静态页生成过程
PHP 5.0对象模型深度探索之属性和方法
PHP 5.0对象模型深度探索之对象复制
php,ajax实现分页
FCKeditor添加自定义按钮
php中用文本文件做数据库的实现方法
PHP详细彻底学习Smarty
php图片验证码代码

PHP 源代码压缩小工具


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 177 ::
收藏到网摘: 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);
?>