我需要一个工具,如果它存在或者你可以在 5 分钟内写完(不想浪费任何人的时间)。
有问题的工具将解决 PHP 脚本中的 include、requires、include_once 和 require_once,并实际上递归地对 then 的内容进行编码。
这将需要在一个大文件中发布 PHP 脚本,该文件实际上使用来自多个包含文件的代码和资源。
我知道PHP 不是 CLI 脚本的最佳工具,但由于我最擅长使用它,所以我用它来编写一些个人或半个人工具。我不想要那些告诉我使用 PHP 以外的东西或学习其他东西的无用答案或评论。
这种方法的想法是能够拥有一个文件,该文件将代表将其放在我的个人~/.bin/
目录中所需的所有内容,并让它作为一个功能齐全且自包含的脚本存在于其中。我知道我可以将脚本中的包含路径设置为符合 XDG 数据目录标准或其他任何内容的路径,但我想尝试这种方法。
无论如何,我在那里问是因为我不想重新发明轮子,我所有的搜索都没有给出任何结果,但是如果我在这里没有任何见解,我会继续按照我的方式去写一个工具这将解决包含和要求。
谢谢你的帮助!
PS:我忘记包含示例并且不想改写消息:这两个文件
mainfile.php
<?php
include('resource.php');
include_once('resource.php');
echo returnBeef();
?>
resource.php
<?php
function returnBeef() {
return "The beef!";
}
?>
将被“编译”为(为清楚起见添加了注释)
<?php
/* begin of include('resource.php'); */?><?php
function returnBeef() {
return "The beef!";
}
?><?php /* end of include('resource.php); */
/*
NOT INCLUDED BECAUSE resource.php WAS PREVIOUSLY INCLUDED
include_once('resource.php');
*/
echo returnBeef();
?>
该脚本不必输出明确的注释,但如果这样做可能会很好。
再次感谢任何帮助!
编辑 1
我对脚本做了一个简单的修改。当我自己开始编写该工具时,我发现我在原始脚本中犯了一个错误。包含的文件必须做最少的工作,被包含在开始和结束标签之外 (
<?php ?>
)结果脚本示例已被修改,但尚未经过测试。
编辑 2
该脚本实际上不需要像运行时精确解析那样对 PHP 脚本进行繁重的解析。只需处理简单的包含(如 include('file.php');)。
我开始编写我的脚本,并且正在读取文件以不智能地解析它们以仅在<?php ?>
标签中包含它们,而不是在注释中或字符串中。一个小目标是也能够dirname(__FILE__).""
在包含指令中检测并实际尊重它。