Ошибка в регулярке
Нужно вытащить сообщение об ошибке
<form action="profile.php?sid=3ad835acc2473167646187deba104c87" method="post">
<table class="forumline" width="100%" cellspacing="1" cellpadding="4" border="0">
<tr>
<td><table width="100%" cellspacing="0" cellpadding="1" border="0">
<tr>
<td> </td>
</tr>
<tr>
<td align="center"><span class="gen">Обов'язкові поля треба заповнити</span></td>
</tr>
<tr>
<td> </td>
</tr>
</table></td>
</tr>
</table>
Я делал так
preg_match("/<form.*<td align=\"center\"><span class=\"gen\">(.*)<\/span><\/td>/U",$page,$result);
Вот такая работает. Но мне нужно привязаться к form для уверености
Вот так работает:
preg_match ('/<form(?:.|(?:\r\n))*<td align="center"><span class="gen">(.*)<\/span><\/td>/U', $page, $result);
Просто \r\n не входит в класс "."
имхо...
В PCRE есть модификатор "s", который включает в "." переносы строк.
То есть нужно просто было добавить буковку "s" в конец регулярки и запахало бы! :)
preg_match ('/<form.*<td align="center"><span class="gen">(.*)<\/span><\/td>/Us', $page, $result);