login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Eregi_replace herhalen

Offline Dark_Paul - 23/11/2006 10:54 (laatste wijziging 23/11/2006 10:55)
Avatar van Dark_PaulPHP ver gevorderde Hej,

Simpel vraagje, hoe herhaal ik mijn eregi_replace?
Ik heb naar preg_replace zitten kijken, maar ik vind ereg's gemakkelijker.
Ik probeer UBB-tags te vervangen (heb wat inspiratie opgedaan uit deze tutorial), maar als dezelfde tag meerder keren gebruik, wordt ie maar één keer afgesloten.
Bijvoorbeeld:
[ b]lol[ /b]
[ b]lol[ /b]
wordt bij mij vervangen in:
<strong>lol<br />
[ b]lol[ /b]</strong>.
Ik heb al verschillende dingen geprobeerd om 'm te herhalen, tot zover nog niet gelukt.
Deze heb ik al geprobeerd:
  1. $message = eregi_replace("^(\[b\](.*)\[/b\])*$", '<strong>\\1</strong>', $message);

Deze heb ik nu:
  1. $message = eregi_replace("\[b\](.*)\[/b\]", '<strong>\\1</strong>', $message);

Hoe zorg ik dat er gewoon uitkomt
<strong>lol</strong>
<strong>lol</strong>
?

Edit:
Ik heb spaties gebruikt om de UBB hier te 'omzeilen'.

4 antwoorden

Gesponsorde links
Offline Stijn - 23/11/2006 11:36
Avatar van Stijn PHP expert http://www.alasal.be/bbcode.phps , kijk die eens
Offline GTW - 23/11/2006 11:38
Avatar van GTW Gouden medaille

PHP gevorderde
  1. $message = preg_replace("#\[b\](.*?)\[/b\]#si","<b>\\1</b>", $message);

deze gebruik ik meestal
Offline Thomas - 23/11/2006 13:45
Avatar van Thomas Moderator Je moet je reguliere expressie not-greedy maken (gebruik de pattern modifier "U"), zodat ie altijd de match (het [ b][ /b]-paar) zo snel mogelijk afsluit / zo kort mogelijk houdt.
Offline Dark_Paul - 23/11/2006 19:27 (laatste wijziging 24/11/2006 08:16)
Avatar van Dark_Paul PHP ver gevorderde
Citaat:
Je moet je reguliere expressie not-greedy maken (gebruik de pattern modifier "U")

Oké, en hoe ga ik dat doen?
Op PHP.net: eregi_replace staat dat niet.
Google levert me ook niet veel nuttigs..

@stijn:
die van jou werkt ook al met preg_replace. Denk dat ik daar dan maar op over moet stappen! Want ik kom er niet uit hoe 't zou moeten met eregi_replace.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.209s