2012-04-03 84 views
0

我有一个preg_match_all问题,也许你可以帮忙。 我有一个PHP代码在其中的字符串。我想检索介于<?php ?>之间的代码,但它似乎不工作。我正在用JS测试规则,它可以正常工作,但在PHP中并不正确。 这是我的代码,也许你能发现我丢失的东西:PHP preg_match_all获取PHP代码

$contents = "<?php 
    echo 'my test'; 
?> 
<b>This is html text </b>"; 
echo preg_match_all('/(<\?php).+(\?>)/', $contents, $code); 

由于提前, 丹尼斯R.

回答

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

谢谢亚兰,解决了我的问题。我以为我因为这个问题而疯了。再次感谢。 – DenisR 2012-04-03 09:28:51

0
<?php 
$contents = "<?php 
    echo 'my test'; 
?> 
<b>This is html text </b>"; 
preg_match_all('~(<\?php)(.+)(\?>)~Uis', $contents, $matches); 
var_dump($matches);