Gå til innhold

Trenger hjelp; regex


Anbefalte innlegg

<a name="poster" href="/rg/action-box-title/primary-photo/media/rm328046336/tt0479952" title="Madagascar: Escape 2 Africa"><img border="0" alt="Madagascar: Escape 2 Africa" title="Madagascar: Escape 2 Africa" src="http://ia.media-imdb.com/images/M/MV5BMjExMDA4NDcwMl5BMl5BanBnXkFtZTcwODAxNTQ3MQ@@._V1._SX94_SY140_.jpg" /></a>

</div>

 

Hvordan kan jeg hente ut bildelinken med en regex-spørring?

Lenke til kommentar
Videoannonse
Annonse
Hvis det der er all teksten du skal parse så:

preg_match('/src="([^"]+)/', $html, $matches);
$image_src = $matches[1];

Men merk at dette vil plukke opp innholdet i den første src="" attributter i htmlen..!

 

 

Dette er langt i fra hele teksten.

 

har funnet ut at denne koden ligger inne i en <div class="photo"> HER </div>

 

f.eks:

 

Masse tekst før

 

<div class="photo">

<a name="poster" href="/rg/action-box-title/primary-photo/media/rm328046336/tt0479952" title="Madagascar: Escape 2 Africa"><img border="0" alt="Madagascar: Escape 2 Africa" title="Madagascar: Escape 2 Africa" src="http://ia.media-imdb.com/images/M/MV5BMjExMDA4NDcwMl5BMl5BanBnXkFtZTcwODAxNTQ3MQ@@._V1._SX94_SY140_.jpg" /></a>

</div>

 

og masse tekst etter

 

Tenkte det kanskje var lurt å finne fram til denne div'en og så gå videre fra denne. da er det kanskje mulig å bruke den koden du skrev. noen ideer hvordan dette kan gjøres ?

Lenke til kommentar

Tja.. Flere muligheter...

Enten kan du bruke DomDocument ( se php.net/DOM ) og parse hele HTMLen, og så søke deg fram til elementet du trenger, og så bruke getText ( tror jeg den heter ) på det elementet

Alternativt, hvis det bare er én div med class="photo" på siden, så kan du gjøre noe slikt:

preg_match('/<div class="photo">(.+?)</div>/', $html, $prematch);
preg_match('/src="([^"]+)/', $prematch[1], $matches);
$image_src = $matches[1];

Lenke til kommentar

<div class="photo">
<a name="poster" href="/rg/action-box-title/primary-photo/media/rm328046336/tt0479952" title="Madagascar: Escape 2 Africa"><img border="0" alt="Madagascar: Escape 2 Africa" title="Madagascar: Escape 2 Africa" src="http://ia.media-imdb.com/images/M/MV5BMjExMDA4NDcwMl5BMl5BanBnXkFtZTcwODAxNTQ3MQ@@._V1._SX94_SY140_.jpg" /></a>
</div>

 

$regex = '#<div\s+class="photo"[^>]*>\s*<a\s+(?:\w+="\w+"\s+)?href="(?P<href>[^"]+)"[^>]*>\s*<img(?:\s+|\w+="[^"]+")*title="(?P<title>[^"]+)"\s+src="(?P<src>[^"]+)"[^>]*>\s*</a>\s*</div>#';

 

Div elementet burde ha id="navn" for å være sikker på at du finner den riktige.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...