hi,
Wenn du reguläre Ausdrücke verwenden willst, solltest du die dafür zuständigen Funktionen benutzen.
Okay, dann eregi_replace()... eigentlich sollte dann
$reg ="((<)|(</))[^p]{1}.*";
eregi_replace($reg, "", $puffer);
bewirken, dass ab dem ersten öffnenden oder schließenden Tag, das nicht p (bzw. P) enthält (genauer, jedes andere Zeichen außer p (bzw. P) und null bis beliebig viele weitere Zeichen, alles durch einen Leerstring ersetzt wird.
Tut es aber nicht, statt dessen löscht es alles ab dem ersten </p>-Tag... was ja auch kein Wunder ist, da die Bedingung nicht eindeutig ist: der Parser kann nicht zwischen < am Anfang und nachfolgendem / als nichtzugelassenem Zeichen und </ am Anfang unterscheiden.
Aber wenn ich die Bedingung so formuliere, dass dieser Umstand berücksichtigt wird:
$reg ="(<)([^p]&[^/]).*";
werden Nicht-<p>...</p>-Tags überhaupt nicht gefunden!
Was mache ich falsch?
Bis bald im Khyberspace!
Yadgar