Проблема с preg_match_all

Tikrim

Guest
Проблема с preg_match_all

Здравствуйте.

Возникла проблема с preg_match_all

У меня есть html документ в размере 100кб мне надо из него вытащить только пути и названия картинок.

Вот мой код

preg_match_all ("|<img\s+src=\"([^\"]+)|", $code, $link_pics);

for ($i = 0; count($link_pics[1]); $i++) {
echo "".$link_pics[1][$i]."<br>";
}

скрипт работает на сервере очень долго и говорит

Fatal error: Maximum execution time of 30 seconds exceeded in /local/home/www010/pics-time/scripts/search.php on line 20

в чем может быть проблема? если надо упростить скрипт то посоветуете как.

Заранее большое всем спасибо за помощь.
 

Larson

Новичок
Ну во-первых вынеси каунт за цикл, тк в твоем случае при каждой итерации происходит вызов функции count:
$cnt = count($link_pics[1]);
for ($i = 0; $i < $cnt; $i++) { ....

А вообще-то 100кб не так много, должно быстрее работать. Поставь в начале скрипта set_time_limit(0);

PS. А $code ты как получаешь?
 

Larson

Новичок
Э, я не заметил, это что еще за конструкция - ( $i = 0; count($link_pics[1]); $i++). Так, батенька, вечный цикл получается. Поставь $i < $cnt;
 

Tikrim

Guest
Э, я не заметил, это что еще за конструкция - ( $i = 0; count($link_pics[1]); $i++). Так, батенька, вечный цикл получается. Поставь $i < $cnt;
Ой спасибо тебе большое, сам не заметил :)
 
Сверху