• PHP 源代码压缩小工具


    所有的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.
    
    	Usage: php compactor.php DESTINATION.php SOURCE.php";
      exit;
    }
     
     
    $source = $argv[2];
    $target = $argv[1];
    print "Compacting $source into $target.
    ";
     
    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);
    ?>
  • 相关阅读:
    tbusers
    Dism解决win 10访问服务器共享问题,共享需要过时的SMB1协议,安装时错误代码:0x800736B3
    &【03】Python 变量与数据类型概览
    & 【01】 Spring源码编译
    &【02】Python 基础语法
    linux出现 -bash: fork: Cannot allocate memory 问题
    并发编程-15 ThreadPoolExecutor线程池
    Spring事务嵌套问题记录
    多线程笔试题记录
    & IDEA Debug启动失败或启动慢
  • 原文地址:https://www.cnblogs.com/wish123/p/12652824.html
Copyright © 2020-2023  润新知