Hey folkens, sidder og fedter med følgende kode:
//Get the file contents
$lines = file_get_contents($URL);
//Find all links:
preg_match_all('/<[aA].*(href|Href|HREF)=(.*)>(.*)<\\/a>/',$lines,$out, PREG_PATTERN_ORDER);
Jeg vil her få fat i det der står mellem <a href=""> og </a>. Det virker fint for links som:
<a href="hej.html">noget tekst</a>
Der kan jeg på out sige:
echo($out[2][0])
udskriver "noget tekst"
Men følgende link bliver ikke snuppet:
<a href="hej.html"><img src="test.img"></a>
Der udskrives en blank linie når jeg vil printe indholdet af teksten. Det skyldes at mit regulære udtryk fanger slut > på billedet den slutning af den vilkårlige serie af tegn der skal slutte med > der var tiltænkt som sluttegnet på <a href="">.
Det er lidt svært at forklare på tekst, men håber i forstår. Jeg leder efter en ændring i mit regulære udtryk der gør at dette ikke kan ske. Tænkte selv noget i stil med:
preg_match_all('/<[aA].*(href|Href|HREF)=[ALLE TEGN UNDTAGEN >]*>(.*)<\\/a>/',$lines,$out, PREG_PATTERN_ORDER);
Men det virker meget overkill at skulle finde samtlige tegn for at at være sikker på dette virker 100% af tiden. Nogen forslag?
Indlæg senest redigeret d. 27.09.2007 12:13 af Bruger #6389