zeilenumbruch im quelltext verhindern

speedone

New Member
Hallo Leute

Ich habe folgendes Problem

Mit einem textarea wird text in eine datenbank geschrieben(Zeichenkodierung im Dokument utf-8 und in der Datenbank utf8_general_ci)

Jetzt wird der Text mit einer classe beim rüberfahren vollständig angezeigt sonst in einer geschnittenen Form...

Solange man mit der Textarea keinen return macht klappt das auch.
Wenn man einen macht sieht die Quellcode ansicht z. B so aus und die Funktion geht nicht mehr!:

HTML:
<test onmouseover="return overlib('Text in zeile 1<br />
Text in zweiter Zeile');" onmouseout="return nd();">test.</test>


Wenn ich aber mal manuell ohne php so etwas reinschreibe und keinen Umbruch im Quelltext habe geht das mit dem <br> wunderbar.
HTML:
<test onmouseover="return overlib('Text in zeile 1<br />Text in zweiterZeile');" onmouseout="return nd();">Text in zeile 1 Text in zweiterZeile </test>


So sieht ungefähr der Code aus:
PHP:
$text_cut = substr($text, 0, 37)."...";
$text_full= nl2br($text);
$text_full= str_replace("", "\r\n" ,$text_full);
$text = "<test onmouseover=\"return overlib('$text_full');\" onmouseout=\"return nd();\">$text_cut</test>";

echo $text

Aus irgendeinem Grund muss der Tag in einer zeile bleiben. Mit Text aus einer Textarea wird aber zusätzlich zu dem <br> durch die nl12br() noch ein Umbruch im Quelltext erzeugt. Ich hoffe ich habe das schonmal richtig erkannt. sind da vll noch irgendwelche Steuerzeichen \n oder \r...
Habe auch mal versucht mit str_replace \n durch einen leeren string zuersetzen. Aber der Umbruch im Quelltext ist immer noch.

Wie kann ich das verhindern, so das nur z.b hallo<br>hallo ausgegeben wird, statt
hallo<br>
hallo

Ich hoffe ich konnte das Problem verdeutlichen. Sorry für den langen Text;)
 
Hallo,

ersetze
$text_full= nl2br($text);
$text_full= str_replace("", "\r\n" ,$text_full);

durch

Code:
$text_full=preg_replace("/\r/",'',$text_full);
$text_full=preg_replace("/\n/",'<br>',$text_full);
 
Back
Top