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:
$in = preg_replace("/\[img\](.*)\[\/img\]/seU", "img('\\1')", $in);
$in = preg_replace("/\[img\](.*)\[\/img\]/seU", "img('\\1')", $in);
|