如何在 preg_replace_callback 中包含文件
How to include a file within preg_replace_callback
假设 example.php 是
echo("123");
我如何更改此字符串 "abc{include 'example.php'}def" 中正则表达式匹配的包含规则与 php 执行的包含结果。 结果应该是"abc123def"
我编写了这段代码并且有效,但它不是包含文件中的 运行 php 代码。所以结果是 "abcecho("123);def",这不是我要找的。
preg_replace_callback("/\{\s*include\s*'(.*?)\'\s*}/", function($m) { return file_get_contents($m[1]);}, $str);
谢谢
您可以使用输出缓冲的功能。那么回调函数将是:
function($m) {
ob_start();
include($m[1]);
$out = ob_get_contents();
ob_end_clean();
return $out;
}
假设 example.php 是
echo("123");
我如何更改此字符串 "abc{include 'example.php'}def" 中正则表达式匹配的包含规则与 php 执行的包含结果。 结果应该是"abc123def"
我编写了这段代码并且有效,但它不是包含文件中的 运行 php 代码。所以结果是 "abcecho("123);def",这不是我要找的。
preg_replace_callback("/\{\s*include\s*'(.*?)\'\s*}/", function($m) { return file_get_contents($m[1]);}, $str);
谢谢
您可以使用输出缓冲的功能。那么回调函数将是:
function($m) {
ob_start();
include($m[1]);
$out = ob_get_contents();
ob_end_clean();
return $out;
}