| |
|
|
| | У меня возникла проблема с функцией preg_match_all при переходе с PHP4 на PHP5.
Вот такое выражение ищет все формы на странице:
preg_match_all("%<forms+([^>]*)>(.+)(?:<form|</form>|$)%isU",$a,$bb);
В PHP4 все отлично работает,а в PHP5 почему то, если есть не одна форма на странице,а несколько в массиве $bb появляется только одна,первая форма.Ощущение такое ,что функция работает только один раз. В чем может быть проблема ?
Нигде не нашел информации о том, что preg_match_all работает по разному в PHP4 и PHP5. | |
| |
|
|
| |
|
|
| |
для: mmm
(30.07.2007 в 13:10)
| | | Да вроде все нормально и на пятерке работает.
Можете посмотреть
<?php
$a="<form>fddfddf</form>dfdfgd<form>wwwwww</form>";
preg_match_all("%<form+([^>]*)>(.+)(?:<form|</form>|$)%isU",$a,$bb);
print_r ($bb);
?>
|
| |
| |
|
|
| |
 32.7 Кб |
|
| |
для: Faraon
(30.07.2007 в 13:56)
| | | Да, в Вашем примере все работает и на 5. Но вот к примеру в прикрепленном файле есть две формы и в 5 находится только одна,в php4 - две,интересно в чем отличие.
<?php
$handle = fopen('aaa.txt', 'r');
while (!feof($handle)) {
$vns = fgets($handle, 4096);
$body[] = $vns;
}
$html_data=implode(' ',$body);
fclose($handle);
preg_match_all("%<form+([^>]*)>(.+)(?:<form|</form>|$)%isU",$html_data,$bb);
print_r ($bb);
?>
|
| |
| |
|
|
| |
|
|
| |
для: mmm
(30.07.2007 в 14:45)
| | | Странно, у меня Ваш код на пятерке, нормально работает. Выдает две формы | |
| |
|
|
| |
|
|
| |
для: Faraon
(30.07.2007 в 15:19)
| | | Интересно,может в настройках что то не так?
Я пробую в ZendStudio-5.5.0. под WinXP.Еще пробовал под VertrigoServ (есть такой пакет ,типа денвера ,только с PHP5). Результат одинаковый.
Может подскажете в какой стороне хоть искать, а то пока даже мыслей никаких.
Спасибо.
Только что проверил еще несколько форм,даже где одна форма на странице PHP5 не берет. Что за наваждение. | |
| |
|
|