Hello E.,
Ich verstehe auch nicht wirklich dein Problem, bei mir funktioniert z. B. das folgende ohne Probleme.
Das ist aber falsch.Da fehlt beide Male die kontextgemäße Behandlung.
Weil's reiner Text war, hatte ich wegen der übersichtlichkeit darauf verzichtet. Mein Fehler.
Hier der nachgebesserte Code (einfach die Zeile ersetzen).
<?php
$str = htmlspecialchars("Lorem ipsum dolor sit ahmet.\r\nAt vero eos et accusam.\r\nLorem ipsum dolor sit ahmet.");
Das wäre aber die falsche Stelle. Einen statischen String zu behandeln ist zwar ganz dienstbeflissen, aber nicht der richtige Zeitpunkt für diese Aktion. Man weiß ja nicht, was andere Programmteile dann anschließend noch mit $str anstellen.
Die kontextgerechte Behandlung sollte daher immer dann passieren, wenn man sich sicher sein kann, dass keine andere Operation mit der Variable mehr zwischen die Behandlung und die Ausgabe in den Kontext passt. Wie man diese Sicherheit herstellt, ist dabei unerheblich.
Darauf kam es mir hier an.
Bei so einem kleinen Beispiel wird vermutlich fast jeder gleich sagen: "Wieso? Sieht man doch!". Aber Du weißt ja selber, wie schnell kleine Beispiele größer und damit auch unübersichtlich werden.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg

--
☻\_
/▌
/ \ Nur selber lernen macht schlau
<http://bergpost.annerschbarrich.de>