我有一个preg_match_all的问题,也许你可以提供帮助。
我有一个字符串,其中包含一些PHP代码。我想检索<?php ?>
之间的代码,但它似乎没有用。我正在使用JS测试规则,它可以正常工作,但在PHP中却没有。
这是我的代码,也许你可以发现我遗漏的东西:
$contents = "<?php
echo 'my test';
?>
<b>This is html text </b>";
echo preg_match_all('/(<\?php).+(\?>)/', $contents, $code);
提前致谢, 丹尼斯R。
答案 0 :(得分:2)
<?php
$contents = "<?php
echo 'my test';
?>
<b>This is html text </b>";
preg_match_all('#(<\s*\?php)(.*?)(\?\s*>)#msi', $contents, $matches);
var_dump($matches);
?>
如果没有.
修饰符,则s
可能与换行符不匹配。
答案 1 :(得分:0)
<?php
$contents = "<?php
echo 'my test';
?>
<b>This is html text </b>";
preg_match_all('~(<\?php)(.+)(\?>)~Uis', $contents, $matches);
var_dump($matches);