Hallo Rolf,
Wenn Du möchtest, dass Zeilenumbrüche generell einfach erhalten bleiben und nicht vom Browser zusammengeschnurrt werden, gibt's immer noch die CSS Eigenschaft white-space: pre. Dann bleiben Spaces alle schön wie sie sind, und deine <br> können keinen Schaden anrichten.
Habe ich auch schon drüber nachgedacht. Die haben aber wieder andere Problemchen, die sie mitbringen. Das Gesamtproblem bei der Umsetzung von BBcode ist nicht ganz unbekannt, wie mir scheint 😉
Ich überlege gerade, ob ich so (wie folgt) nicht ganz gut fahre (wohlwissend, dass ich die Tag-Liste noch ergänzen muss / img
fehlt z.b. noch).
// Text einlesen
$text = $_REQUEST['myTextarea'];
# Zeilenumbrüche korrigieren
$text = str_replace("\r\n","\n",$text); # windows -> linux
$text = str_replace("\r","\n",$text); # mac -> linux
# array bilden
$arr_text = explode("\n",$text);
$neuerText = '';
foreach($arr_text as $zeile) {
if (!preg_match("/\[\/?(div|li|ul|td|tr|table|code|quote|list|ol|hr|th|tbody|row|h[123456]|youtube)\]$/",$zeile)) {
$zeile = $zeile."\n";
}
$neuerText .= $zeile;
}
echo $parser->parse($neuerText)
->detect_links()
->detect_emails()
->detect_emoticons()
->get_html();
Das sieht bisher im Ergebnis ganz passabel aus.
Jörg