どうやってそれをしてください?
<?php
$string = '<inc="file.php">';
return preg_replace('#<inc\s*="\s*([a-zA-Z0-9\_]+)\">#',include("$1"),$string);
?>
出力は $1 を返します
インクルード file.php を返す必要があります
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);
?>
何をしようとしているのか正確にはわかりませんが、 preg_match
preg_replace を使用してみてください。
次のように使用すると、一致が配列に収集されます。
preg_match('#<inc\s*="\s*([a-zA-Z0-9\_]+)\">#', $string, $matches);
そして、一致が$matches
配列に格納されます。その後、 を使用してそれらをループできますforeach
。
そうあるべきだと思う
return preg_replace('#<inc\s*="\s*([a-zA-Z0-9\_]+)\">#','include("'.$1.'")',$string);
2 番目のパラメーターは文字列である必要があります。