Einzelnen Beitrag anzeigen

ehoffman

Registriert seit: 3. Jan 2006
Ort: Braunschweig
15 Beiträge
 
Delphi 2006 Enterprise
 
#15

Re: nl2br(), nur nicht für HTML-Code

  Alt 13. Jul 2006, 13:27
Hallo,

Zitat von Matze:
Wird nach der Anwendung des regulären Ausdrucks kein Absatz zwischen dem text und dem darauf folgenden Bild gemacht. Der Text klebt also direkt über dem Bild, was mir noch nicht gefällt. Ansonsten funktioniert es, soweit ich das sehen kann, alles bestens. Aber auch mit dem kleinen Schönheitsfehler könnte ich leben.
Damit sollte es gehen:
Delphi-Quellcode:
preg_replace("/(([^>])[\r\n])|^([\r\n])/m", "\\1
", $input);
Zitat von Matze:
Was mich dennoch interessieren würde (ich weiß nicht, ob ich das so mache):
Angenommen, ich fasse solche komplexeren HTML-Blocke in einen -BBCode. Wie kompliziert wäre es dann, das mit regulären Ausdrücken zu lösen?
Also soooo super toll kenne ich mich mit den Perl Regex auch nicht aus, aber meiner Meinung nach würde diese Vorgehensweise das Ganze nicht sonderlich erleichtern. Du müßtest dann zunächst mal die Eingabe aufteilen in "Nicht-HTML" und in "HTML" (also innerhalb von ). Das ginge mit preg_replace und einer zusätzlichen Funktion recht einfach. Die Funktion selber ersetzt dann quasi die Leerzeichen. Das würde also pro gefundenem Block (HTML/Nicht-HTML) ein Funktionsaufruf sein. Da sollte obiges regex schneller arbeiten.

Ansonsten kann man das auch "von Hand" also ohne regex zerlegen - aber das kommt meiner Meinugn nach letztendlich alles auf das gleich raus.

Viele Grüße,
Eike
Eike
  Mit Zitat antworten Zitat