LINUX.ORG.RU

Помогите с регулярными выражениями (PHP)


0

0

Имеется след. код:

...
$contents="d <form>Text 1<s>simple</s> xxxxx\n</form>\n<form>Text 2</form>";

preg_match_all("/(<(form)[^>]*>)((?s).*)(<\/\\2>)/", $contents, $forms);

for($i=0; $i<count($forms[0]); $i++)
  {
    echo "$i: " . $forms[0][$i] . "\n";
  }
...

После выполнения получаем:

0: <form>Text 1<s>simple</s> xxxxx
</form>
<form>Text 2</form>

А нужно:

0: <form>Text 1<s>simple</s> xxxxx
</form>
1: <form>Text 2</form>

Как сделать?
Спасибо.
anonymous

<?php
$contents="d <form>Text 1<s>simple</s> xxxxx\n</form>\n<form>Text 2</form>";
preg_match_all('/(<(form)[^>]*>)(.*?)(<\/\2>)/s',$contents,$forms );
for($i=0;$i<count($forms[0]);$i++){
echo "$i: ".$forms[0][$i]."\n";}
?>

josephson ★★
()

У меня вроде так получилось:

$contents="d <form>Text 1<s>simple</s> xxxxx\n</form>\n<form>Text 2</form>";

preg_match_all("/<form>(.*)<\/form>/U", $contents, $forms);

for($i=0; $i<count($forms[0]); $i++) { echo "$i: " . $forms[0][$i] . "\n"; } ...

vikeng
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.