PHP preg_match_all来获取PHP代码

时间:2012-04-03 09:11:18

标签: preg-match-all pecl

我有一个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。

2 个答案:

答案 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);