PDA

Просмотр полной версии : выбрать из html все img


Chas
16.08.2006, 15:02
мне нужно выбрать из html все теги <img>,
из них выбрать все src и вывести их на экран.

все <img> теги у меня получается выбрать:
preg_match_all ("/<\t*img.*?>/si",$val, $m);
но, как теперь теперь выбрать все src="...", из $m, так, чтобы в массиве он вернул не src="..." и не "..."?

и еще, я понял из мануала, что можно в одним preg_match_all получить и выборку всех тегов <img> и все scr="..." используя группы (). но не понял как. разъясните, плз.

зы: пожалуйста не посылайте на мануалы, я и так уже два читаю. разве, что, если на русском.

Chas
16.08.2006, 15:24
короч, я уже придумал как сделать используя один preg_match_all.

preg_match_all ("/(<\s*img\s*src\s*=\s*\")(.*)(.*?\".*?>)/i",$val, $m);

вывод, например:

Array
(
[0] => Array
(
[0] => <img src="1.jpg">
[1] => <img
src="2.jpg">
[2] => <img src="3.jpg">
)

[1] => Array
(
[0] => <img src="
[1] => <img
src="
[2] => <img src="
)

[2] => Array
(
[0] => 1.jpg
[1] => 2.jpg
[2] => 3.jpg
)

[3] => Array
(
[0] => ">
[1] => ">
[2] => ">
)

)
$m[2] - это именно то, что мне нужно
может быть, можно сделать более эффективно? или сдесь есть какая-нибудь ошибка?