PHP preg_match_all для получения кода PHP - PullRequest
0 голосов
/ 03 апреля 2012

У меня проблема с 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);

Спасибо заранее, Денис Р.

Ответы [ 2 ]

2 голосов
/ 03 апреля 2012
<?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.

0 голосов
/ 03 апреля 2012
<?php
$contents = "<?php 
  echo 'my test';
?>
<b>This is html text </b>";
preg_match_all('~(<\?php)(.+)(\?>)~Uis', $contents, $matches);
var_dump($matches);
...