[ vtl_design @ 04.09.2009. 15:27 ] @
Zanima me kako da parsiram URL slike iz img taga?
Npr ako u stringu imam:

neki text bla bla
<img src="http://www.slika.com/slika.jpg" alt="100650406" title="100650406" width="250" height="250" class="x" />
neki text bla bla


Da mi uzmem ovo: http://www.slika.com/slika.jpg

Da li neko zna? I ako ima vise slika u tom stringu da uzme onu prvu na koju naidje.
Hvala puno
[ Jezdimir Lončar @ 04.09.2009. 15:42 ] @
Koristi preg_match.

Code:

<?php
$url = '<img src="http://www.slika.com/slika.jpg" alt="100650406" title="100650406" width="250" height="250" class="x" />';
preg_match("/\<img src=\"(.*)\" alt=\"(.*)\" title=\"(.*)\" width=\"(.*)\" height=\"(.*)\" class=\"(.*)\" \/\>/i",$url,$arr);
print_r($arr);
// URL slike:
echo "URL slike je: ".$arr[1];
?>


Znači ovo mi je sad palo na pamet, vjerovatno može malo "elegantnije" da se odradi.
[ Nikola Poša @ 04.09.2009. 15:46 ] @
Code:
preg_match('/<img.*src\s?\=\s?\"(.+)\".*\s?\/>/i', $text, $subPatterns);

Nisam probao, al' trebalo bi da radi... Gledao sam da bude što univerzalinije, tako da može da uspe i ako se taj src atribut nalazi na bilo kom mestu unutar <img /> tag-a.

Posle bi u $subPatterns[1] trebao da imaš tu putanju.

Citat:
vtl_design:  I ako ima vise slika u tom stringu da uzme onu prvu na koju naidje.

U kom stringu? Ovom $text, koji pretražuješ? Funkcija preg_match će da pronađe samo prvi na koji naiđe, a preg_match_all, radi globalnu pretragu.
[ Nikola Poša @ 04.09.2009. 15:52 ] @
@Jezdimir Tvoj kod bi prouzrokovao sintaksnu grešku, jer unutar pattern-a NE sme da bude white space-ova. Umesto njih se koristi "\s".
[ vtl_design @ 04.09.2009. 19:41 ] @
Sve je ovo super al ne uzma mi prvi URL, vec zadnji. Valjda zato sto kupim iz baze string u kome se nalaze img tagovi, pa onda to obrne nesta pojma nemam. Kako da obrnem?
[ vtl_design @ 04.09.2009. 19:49 ] @
aha skonto sam. hvala puno!