phpbar.de logo

Mailinglisten-Archive

[php] Regex funktioniert nach PHP Versionsumstellung nicht mehr

[php] Regex funktioniert nach PHP Versionsumstellung nicht mehr

yankee yannikh at gmail.com
Fre Sep 22 20:03:03 CEST 2006



Niels Runge wrote:
>>> 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))
>>>     
>> Schnell-guess:
>> Alle Backslashes müssen doppelt sein, da sie in einem String sind... \n 
>> ist sonst zum Beispiel ein Zeilenumbruch...
>>
>>   
> dann wäre hiermit wohl geholfen
> http://php.net/preg_quote

Nein... Denn das problem besteht schon, bevor du den Text durch diese 
Funktion jagen könntest...
Denn "\n" enterpretiert der php-Parser sofort als Zeilenumbruch und 
nicht als \n.
Es würde eventuell allerdings auch schon helfen, wenn du ' statt " als 
Stringklammern verwendest. Denn in ' macht sich der php-parser mit sowas 
nicht so viel Arbeit (wird daher übrigens auch schneller geparst!).

> 
> Gruß
> Niels

php::bar PHP Wiki   -   Listenarchive