<?php
$string = '<inc="file.php">';
return preg_replace('#<inc\s*="\s*([a-zA-Z0-9\_]+)\">#',include("$1"),$string);
?>
输出返回$ 1
我需要返回包含file.php
答案 0 :(得分:3)
如果你有PHP 5.3或更高版本:
<?php
$string = '<inc="file.php">';
return preg_replace_callback('#<inc\s*="\s*([a-zA-Z0-9\_]+)\">#', function($matches) {
return include $matches[1];
}, $string);
?>
答案 1 :(得分:1)
我不确定你要做什么,但尝试使用preg_match
而不是preg_replace。
如果你使用它,它会将匹配收集到一个数组中:
preg_match('#<inc\s*="\s*([a-zA-Z0-9\_]+)\">#', $string, $matches);
然后匹配存储在$matches
数组中。然后,您可以使用foreach
循环它们。
答案 2 :(得分:1)
我认为应该是
return preg_replace('#<inc\s*="\s*([a-zA-Z0-9\_]+)\">#','include("'.$1.'")',$string);
第二个参数应该是一个字符串。