phpbar.de logo

Mailinglisten-Archive

[php] preg_replace: <p> bzw </p> am Anfang und Ende eines Strings entfernen

[php] preg_replace: <p> bzw </p> am Anfang und Ende eines Strings entfernen

Volker Hartmann volker.hartmann at virtuatron.de
Die Jun 21 13:52:28 CEST 2005


Hallo,

ich habe mal wieder ein Problem mit diesen verflixten regulären
Ausdrücken ;-). 
Als Template-Engine für mein weblog verwende ich smarty. nun habe ich das
Problem, dass der WYSIWYG-Editor (htmlarea) Absätze in <p></p> einschließt,
allerdings nur, wenn der Artikel auch Absätze enthält. Das bereitet mir
erhebliche Schwierigkeiten in meinem Template, weil der Artikeltext eben
nicht grundsätzlich in einem Absatz eingeschlossen ist. Wenn ich die p-Tags
in meinem Template "hardcode" dann bekomme ich teilweise kaskadierte
Absätze, was ja nicht erlaubt ist. Smarty enthält eine Funktion
(regex_replace), die der preg_replace()-Syntax folgt.
Ich benötige einen regulären Ausdruck, mit dem ich am Anfang und am Ende
eines Strings, der Zeilenumbrüche enthalten kann, jeweils <p> bzw. </p>
entfernen kann. Mein Versuch funktioniert leider überhaupt nicht (soll
heißen, der String bleibt wie er ist):

Smarty: {$post->getText()|regex_replace:"/(^<p>) (.*) (</p>$)/":"\$2"}
sollte eigentlich
preg_replace( "/(^<p>) (.*) (</p>$)/", "\$2",$string);
entsprechen.

Gruß Volker
-- 
Save energy: be apathetic.
.:: virtuatron::weblog | http://www.virtuatron.de ::.

php::bar PHP Wiki   -   Listenarchive