Не хочет работать preg_match_all

krek753
На сайте с 15.12.2008
Offline
104
470

Здравствуйте. написал обычный скриптик, чтобы спарсить размеры файлов, но он отказывается работать с данными которые помещаются в переменную.

<?php

$htmlcontent=file_get_contents('http://rutor.org/torrent/324962/');

preg_match_all("|(?<=Размер</td><td>)(.*)(?=\ \ \()|U", $htmlcontent, $out, PREG_SET_ORDER);
echo $out квадратные скобки 0 квадратные скобки; (что-то не воспринимает форум квадратные скобки
?>

ошибка вот такая вылазит Notice: Undefined offset: 0 in C:\Program Files (x86)\VertrigoServ\ on line 5

если в переменную $htmlcontent просто загнать

>Размер</td><td>1.45&nbsp;GB  (1555159249 Bytes)</td></tr>

тогда работает. прошу подскажите в чем дело!

siv1987
На сайте с 02.04.2009
Offline
427
#1

В регулярном выражении слишком много ненужных утверждений, а вместо echo пишем print_r

krek753
На сайте с 15.12.2008
Offline
104
#2
siv1987:
В регулярном выражении слишком много ненужных утверждений, а вместо echo пишем print_r

сделал так

preg_match_all("|(?<=Размер</td><td>)(.*)(?=&nbsp;)|U", $htmlcontent, $out, PREG_SET_ORDER);

теперь ошибка

Parse error: syntax error, unexpected T_VARIABLE in C:\Program Files (x86)\VertrigoServ\ on line 5

siv1987
На сайте с 02.04.2009
Offline
427
#3

preg_match('#<td class="header">Размер</td><td>(.+?)\s#u', $html, $out);

print_r($out);

при этом не забывать что Размер строка в utf-8

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий