preg_match og regular expression

Tags:    php

Hej,

Jeg er ved at lave noget, hvor jeg henter hele kildekoden fra en html side og hiver alle link ud. Jeg har bare lidt problemer med at få preg_match til at give mig resultater.

Et eksempel på hvordan koden kan se ud:
Fold kodeboks ind/udKode 


Det virker bare ikke. Jeg får ingen resultater. Nogen der ved hvad der er galt? Jeg har tjekket min regular expression på en online tester, og der ser den ud til at virke fint.

Dette virker fint:
Fold kodeboks ind/udKode 




2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
^ tegnet, siger at det skal være det allerførste tegn i strengen, 'b' er det første tegn i dit andet eksempel, derfor det virker.

du kunne måske lave noget alá:

#<a(.*?)>#is

Jeg plejer at bruge POSIX (ereg_replace()), og ikke PCRE (preg_replace).
Regular expressions er ikke min stærke side, og dette er ikke testet.

ereg_replace("#<a(.*?)>#is","\\\\1",$html);

Du kan jo lege meget med det, og f.eks. kun tage det der står i "href", eller noget.

ereg_replace("#<a(?:.*?)href\\=[\\"|\\'][ht|f]tp\\:\\/\\/(.*?)[\\"|\\'](?:.*?)>#is","\\\\\\1",$html);
ikke testet overhovedet, bare lige ca..

Mere læsning:
http://spellbook.infinitiv.it/2006/07/12/php-regular-expressions.htm




Indlæg senest redigeret d. 26.07.2006 18:20 af Bruger #6546
Takker mester. Det var ikke lige 100% det svaret jeg ledte efter, men med din hjælp fik jeg det til at virke.

Problemet var, som du sagde, at det jeg søger efter skal startede med "<a", men eftersom det hele er html og sidder sammen uden mellemrum kunne den ikke finde ud af det. Da jeg fjernede ^ var alt fedt.



Indlæg senest redigeret d. 26.07.2006 21:26 af Bruger #10296
t