Ik heb een naar mij lijkt vrij eenvoudig probleem, maar ik kom er niet uit.
Ik wil van een gegeven htm(l) document de links vervangen tot bepaalde code, behalve die links die naar een externe site verwijzen. Anders gezegd: alle links vervangen, behalve die beginnen met http: (of ftp, dat maakt me niet uit).
Probleem is dat alle onderstaande grove code niet werkt en ik niet inzie waar het nu misgaat. Wil iemand even helpen? Zoeken op de tutorials van regular expressions helpt me erg weinig, want ik zie nergens staan hoe ik een string uitsluit. Wel staat overal [^a-z] voor het uitsluiten van alle letters, maar dat gaat wat ver....
Ik wil van een gegeven htm(l) document de links vervangen tot bepaalde code, behalve die links die naar een externe site verwijzen. Anders gezegd: alle links vervangen, behalve die beginnen met http: (of ftp, dat maakt me niet uit).
Probleem is dat alle onderstaande grove code niet werkt en ik niet inzie waar het nu misgaat. Wil iemand even helpen? Zoeken op de tutorials van regular expressions helpt me erg weinig, want ik zie nergens staan hoe ik een string uitsluit. Wel staat overal [^a-z] voor het uitsluiten van alle letters, maar dat gaat wat ver....
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| <?php $tekst = "<p><a href=\x22http://www.nu.nl/\x22>nu.nl</a>"; $tekst .= "<p><a href=\x22test.htm\x22>test</a>"; eregi_replace("href=\x22(^http)(\.[a-z0-9-]+)*\x22","href=\x22index.php?file=",$tekst); echo $tekst; eregi_replace("/href=\x22[^http](.*)\x22/","href=\x22index.php?file=",$tekst); echo "<hr>".$tekst; eregi_replace("/href=\x22(^http)(.*)\x22/","href=\x22index.php?file=",$tekst); echo "<hr>".$tekst; eregi_replace("href=\x22(^http)(.*)\x22","href=\x22index.php?file=",$tekst); echo "<hr>".$tekst; eregi_replace("href=\x22.*\x22","href=\x22index.php?file=",$tekst); echo "<hr>".$tekst; ?> |