将多个PHP脚本合并到一个文件中

时间:2009-09-23 00:08:18

标签: php

我有一个PHP脚本,其中包含一个或两个使用“include”语句依赖的其他库。为了使它更容易移植,我想以某种方式将脚本和include d库“编译”成一个PHP脚本(就像ack在其中包含所有Perl依赖项一样文件)。在PHP中有一种简单的方法吗?

澄清:编译为Windows可执行文件可能是(部分)可接受的解决方案,但脚本仍然需要在* nix上运行,其中最好使用'{{ {1}}'位于顶部。

我希望能够在任何操作系统上的某个位置将单个文件放入$ PATH,并且无需安装额外的PHP库即可使用它。

6 个答案:

答案 0 :(得分:11)

较新版本的PHP支持类似于java中jar文件的概念。看看phar。您可以将所有应用程序文件打包到一个存档中并运行它。

答案 1 :(得分:7)

PHP包ScriptJoiner甚至更好的JuggleCode可能有所帮助:

两者都基于PHP-Parser(http://packagist.org/packages/nikic/php-parser),这使得加入脚本文件变得非常容易。

答案 2 :(得分:4)

没有内置的方法可以做到这一点。我建议将代码打包到一个目录中并以这种方式分发。我使用PHP执行此操作,将代码放入目录“something.module”,然后遍历模块目录,包括每个.module目录下的主文件。但是对于更简单的事情,你可以有一个像:

这样的结构
my_package/
  my_package.php
  include1.php
  include2.php

my_package.phpinclude(realpath(dirname(__FILE__).'/inclue1.php'))。所有其他scrits只需要include('my_packahe/my_package.php')

答案 3 :(得分:3)

手动,您只需删除include / require的所有引用,并将文件“连接”在一起。 你还应该在连接之前去除开放和结束标记('<?php',“?>”),并将它们添加到最终文件中。

对于一个或两个小型图书馆,它应该 - 希望 - “只是工作”......

答案 4 :(得分:2)

phc允许这样做。只需使用--include标志运行它,它会将您的所有代码(以及includerequire等的每个参数)组合到一个PHP文件中。

如果您愿意,也可以编译它,但不需要将它们全部合并到一个文件中。

答案 5 :(得分:1)

您可以编写一个自定义脚本来打开所有文件,删除开始和结束标记,并将它们连接在一起并保存为一个文件。应该很容易做到。

或者您可以使用php编译器。它会比你想要的更多,但如果你只想要一个文件,你可以通过其中一个来运行你的开发项目。

您也可以使用内置的php字节码编译器将所有内容编译为字节码并将其粘贴到一个文件中。