login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Preg_replace (Opgelost)

Offline finduilas - 03/01/2008 20:19
Avatar van finduilasPHP gevorderde Hallo,

Ik zit terug vast met preg_replace:
ik wil [email]blabla[/email] vervangen naar <a href="blabla">blabla</a>

Dus omgezet in een reg. expressie wordt dit???:
\[email\](*)\[/email\]

[email] [/email] moet ervoorkomen (letterlijk) en (*) is een substring die ik gebruik dus heb ik dit:

$bericht = preg_replace("\[email\](*)\[/email\]","<a href=\"mailto:\\1\">\\1</a>",$bericht);

maar helaas moet er ergens fout zitten :
Warning: preg_replace(): Delimiter must not be alphanumeric or backslash in /forum/test.php on line 11

Waar zit ik verkeerd met mijn denkpiste?

1 antwoord

Gesponsorde links
Offline Stijn - 03/01/2008 21:17
Avatar van Stijn PHP expert Je moet een delimeter defineren. Dat is nodig voor je regulaire expressie om onderscheidt te maken van wat je expressie is en wat niet. Zoals de fout zegt kan een delimter allesbehalve een backslash (\), cijfer of een letter zijn. Gebruik dus een symbool die niet vaak voorkomt in de expressie wereld. De meeste gebruiken ~ of #. Stel dat je nu een #-teken moet matchen dan moet je dat escapen in je expressie -> \# zo dus.

Om het met jou code te illustreren:

  1. $bericht = preg_replace("~\[email\](.*?)\[/email\]~",'<a href="mailto:\\1">\\1</a>',$bericht);
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.176s