возврат каретки — PHP nl2br не работает правильно

Например, у меня есть:

Lorem Ipsum

Dolor Sir Amet

Как содержание $s, Теперь, если я распечатаю результат htmlspecialchars(nl2br($s)) является:

Lorem Ipsum<br />
<br />
Dolor Sir Amet

Хотя результат, который я хочу получить:

Lorem Ipsum<br /><br /> Dolor Sir Amet

Почему nl2br не удаляет возврат каретки, хотя он уже вставляет <br /> ? Или как правильно использовать nl2br правильно снять возврат каретки? Потому что это ломает мой SQL. Я использую PHP на Apache в Windows 7. Спасибо.

1

Решение

заменить все переводы строк на <br /> Вы должны использовать расширенную функцию,
вот пример:

<?php
function nl2br2($string) {
$string = str_replace(array("\r\n", "\r", "\n"), "<br />", $string);
return $string;
}

Каждая ОС имеет различные символы ASCII для перевода строки:

windows = \ r \ n
unix = \ n
mac = \ r

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]