phpbar.de logo

Mailinglisten-Archive

[php] Regex funktioniert nach PHP Versionsumstellung nicht mehr

[php] Regex funktioniert nach PHP Versionsumstellung nicht mehr

Sebastian Mendel lists at sebastianmendel.de
Fre Sep 22 22:55:34 CEST 2006


Michael Stenz schrieb:
> Hallo, 
> 
> ich habe für eine Webseite vor ein paar Jahren mal ein Regex für ein CMS
> geschrieben. Dort soll [center]text[/center] in zentrierten Text umgewandelt
> werden. Dies hat immer funktioniert. Bis der Provider auf eine Neue Version
> umgestellt hat. Ich weis jedoch nicht, welche Version er früher hatte und
> welche jetzt.
> 
> If
> (preg_match("'\[(center|left|right)\](.*?|(.*?\n*?.*?)*)\[(/center|/left|/ri
> ght)\]'", $content))

probiers mal so:

preg_match('/\[(center|left|right)\][^\[]*\[\/\1\]/', $content)

> { 
> 	$content =
> preg_replace("/\[(center|left|right)\](.*?|(.*?\n*?.*?)*)\[(/center|/left|/r
> ight)\]/" , "<div align=\"\\1\">\\2</div> " , $content);
> }

und so:

preg_replace('/\[(center|left|right)\]([^\[]*)\[\/\1\]/', '<div
align="\\1">\\2</div> ', $content);


> Hat jemand eine Ahnung wieso es nicht mehr funktioniert?

das der zweite überhaupt mal funktioniert hat wundert mich, weil du
nämlich '/' als Begrenzer hast, diese aber im regex nicht escaped hast.


php::bar PHP Wiki   -   Listenarchive