\r\n отображается в <textarea> после извлечения из базы данных
Для начала данные взяты из текстовой области.
Линия1 Линия2 Линия3 и т. Д.
Он передается через эту функцию перед сохранением в БД (я открыт для лучших решений, но если PDO - один из них, я не понимаю его и пока не заставил его работать)
function test_input($data) {
global $conn;
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
$data = mysqli_real_escape_string($conn, $data);
return $data;
}
Это мой способ предотвращения инъекций (не мой, а способ, который я обнаружил, который до сих пор работал отлично, и это дает мне эту проблему с переносами строк и текстовыми сообщениями)
Я пытаюсь извлечь данные из БД и отобразить их в текстовой области, и вместо перевода строки отображается \r\n. Он хранится в БД с разрывами строк (я не вижу \r\n, но вместо этого я вижу данные в новой строке)
Я пробовал nl2br, пробовал html_entity_decode, пробовал от str_replace \r\n до br (а затем он просто показывает литерал br вместо \r\n).
из исследования, которое я нашел на этом сайте, это то, что я делаю с ним до того, как сохранить его в БД, что и является причиной этого, но ни одно из решений не сработало для меня.
Помогите.
3 ответа
Заменить \r\n
в тексте с
прежде чем поместить его в текстовую область и показать его пользователю.
Это сработало для меня.
Попробуйте это может помочь полный
<?php
function nl2br2($string) {
$string = str_replace(array("\r\n", "\r", "\n"), "<br />", $string);
return $string;
}
?>
HTML против php и windows (возврат каретки и перевод строки). Что происходит, когда у вас есть поле значений в буфере. Буфер может приходить с устройства ввода / вывода или отправляться на него. Возможно, что внутри буфера необходимо заменить строку, соответствующую устройству. Для извлечения данных из БД построчно или из API-запроса SQL потребуется регулярное выражение и операция подстановки, повторяющаяся до тех пор, пока не будут изменены все выражения. Пуленепробиваемая проверка ввода до того, как он попадет в поле БД, всегда является хорошей идеей. Я столкнулся с проблемой печати, которая была вызвана дополнительными данными (escape-последовательностями), которые заставили принтеры остановиться и ждать последовательности сброса. Никто не понимал, почему задания на печать не печатались примерно 12 месяцев. Я написал фильтр и добавил его в интерфейс принтеров. Задача решена