login  Naam:   Wachtwoord: 
Registreer je!
 Forum

preg_replace() probleem

Offline MothZone - 05/05/2005 13:30 (laatste wijziging 05/05/2005 13:33)
Avatar van MothZonePHP ver gevorderde Hallo.
Ik ben bezig aan een ubb-systeem, waar ook de [img]-tag in voorkomt.
Voor figuren heb ik een functie uitgeschreven omdat het te lang is om in de regexp te zetten.
Nu gebruik ik dit als regexp maar het werkt niet:
  1. <?php
  2. $in = preg_replace("/\[img\](?U)((.|\n|\r)*)\[\/img\]/", img("\\1"), $in);
  3. ?>


Hij voert img() wel uit, maar ipv met het url vd figuur, met \\1
Weet iemand hoe dit verholpen kan worden?

Greetz Mz
edit: nu kleurt hij de code, mss wat duidelijker 

2 antwoorden

Gesponsorde links
Offline Thomas - 05/05/2005 13:37
Avatar van Thomas Moderator Is img() een functie die jij gedefinieerd hebt ? Dan moet die functie nog uitgevoerd worden, lijkt me, dus moet achter de reguliere expressie een "e" komen (van evalueren). Dit is een zogenaamde pattern-modifier, en is van invloed op heel je reguliere expressie en het matchen ervan.
Je kunt (.|\n|\r)* ook veranderen in (.*) als je de pattern modifier "s" toevoegt. Dan worden in het "."-patroon ook \r en \n gematched (al zou ik niet weten waarom er line-breaks in de URL van een plaatje zouden zitten ?).

Tot slot kun je de ungreedy-pattern modifier "(?U)" ook achter je patroon zetten. Tis altijd ff klooien met quotes in je "replace"-deel, maar volgens mij wordt je preg_replace dan:

  1. $in = preg_replace("/\[img\](.*)\[\/img\]/seU", "img('\\1')", $in);
Offline MothZone - 05/05/2005 13:46 (laatste wijziging 05/05/2005 13:46)
Avatar van MothZone PHP ver gevorderde uhh:s jah zeker (ben niet echt vertrouwd met regexp's, had er gewoon eentje omgevormd)

maareuh, hij werkt nu dus thx^^ 

edit: is je c-mon dood?^^
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.208s