2012-04-03 3 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

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