我有一个使用包含的 PHP 脚本。包含的文件也有自己的包含。
所有文件都在网络服务器上的同一个文件夹中。我想要一个单独的 PHP 脚本来合并所有这些
到单个 PHP 文件中。我会为新脚本提供文件以开始处理(例如上面的 index.php)。
如何使用 PHP 做到这一点?例如说我有这些文件:
---------------------
index.php
<?php
*other code1*
include 'header.php';
*other code2*
?>
----------------------
header.php
<?php
*other code3*
include 'subheader.php';
*other code4*
?>
----------------------
subheader.php
<?php
*other code5*
?>
The result of the script begining from the index.php would be:
merged_file.php
<?php
*other code1*
*other code3*
*other code5*
*other code4*
*other code2*
?>
即代码将全部位于一个大文件中,并以与以前完全相同的顺序执行。
所以基本上它会遍历脚本,每次找到一个包含时,它都会用给定包含文件中的相关 PHP 代码替换包含,并且它将替换该包含中任何包含的代码,直到所有代码都合并到一个单一的文件(递归函数?)
注意:我想要在文件中返回未解析的 PHP 代码。
提前致谢
编辑:我理解模块化代码通常更好的做法,但这不是我的问题。我在问我怎么能做到这一点?不是模块化vs的好处
非模块化代码。
最佳答案
我认为这可以解决您的问题 phpcompiler.org
phc 最初支持 PHP 的 include 内置的编译时处理。启用此功能会在 AST 中插入包含的语句来代替 include 语句。包含的函数、类和接口(interface)成为文件顶级范围的一部分。如果 phc 无法处理包含语句(例如,如果找不到文件),则会发出警告,并保留包含语句。
关于PHP(或PYTHON)将所有包含的文件合并到一个大文件中(递归?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9081908/