PHP正则表达式搜索包含项,然后在找到它们的地方编写包含项

PHP正则表达式搜索包含项,然后在找到它们的地方编写包含项,php,regex,templates,include,Php,Regex,Templates,Include,我已经(评论得很好!)使用正则表达式搜索文件夹中的文件,删除注释和HTML,但保留标记不变。我希望这个脚本也这样做,但它需要将找到的include打印到文件中,而不是保持标记的完整性 例如: <!--TPFILE--><?include '/module/menu.html';?><!--TPFILEEND--> 因此,目标是将menu.HTML中的HTML打印到正则表达式找到include的位置。 我对PHP非常陌生,但了解基础知识,不过我还是坚持使用

我已经(评论得很好!)使用正则表达式搜索文件夹中的文件,删除注释和HTML,但保留标记不变。我希望这个脚本也这样做,但它需要将找到的include打印到文件中,而不是保持标记的完整性

例如:

<!--TPFILE--><?include '/module/menu.html';?><!--TPFILEEND-->

因此,目标是将menu.HTML中的HTML打印到正则表达式找到include的位置。 我对PHP非常陌生,但了解基础知识,不过我还是坚持使用这个


编辑:我找到了一个解决方案,它作为答案发布在下面。

是否需要此语法:
?你能用
替换这个吗?如果是这样,您可以直接包含该文件,或者使用
token\u get\u all()
将HTML拆分为PHP块和普通字符串(HTML)输出。

解决方案是使用

preg_replace_回调

并创建一个新函数并使用文件获取内容:

function repl_str($matches)
{
  // $matches[1] the match for the first subpattern
  return file_get_contents($matches[1]);
}
以下是链接到:

对不起,如果我太傻了,你能给我举个例子说明一下你的意思吗?我已经试着阅读了token_get_all(),但我还是不明白你的意思。谢谢你的回答!这是一个好主意,
token\u get\u all()
像PHP引擎处理一样分割输入,因此它为您完成了提取HTML字符串的“可执行”位的所有艰苦工作。如果您无法更改
语法,那么这对您没有用。感谢您的努力,但我通过在新函数中使用preg\u replace\u回调和file\u get\u内容解决了这个问题。