отображать новую строку mysql в HTML

Некоторые поля в нашей базе данных mysql, по-видимому, содержат символы новой строки, поэтому, если я выберу их, для одного вызова SQL будет возвращено что-то вроде следующего:

Life to be sure is nothing much to lose

But young men think it is and we were young

Если я хочу сохранить разрывы строк при отображении этого поля на веб-странице, является ли стандартным решением написать скрипт для замены '\n\r' на HTML-тег br или есть лучший способ?

Спасибо!


person nedblorf    schedule 10.12.2009    source источник


Ответы (3)


Предполагая PHP здесь...

nl2br() добавляет <br /> к каждому \n. Не забудьте сначала экранировать содержимое, чтобы предотвратить XSS-атаки. Смотри ниже:

<?php echo nl2br(htmlspecialchars($content)); ?>
person gahooa    schedule 10.12.2009
comment
Спасибо за это, есть ли способ добавить 2 тега ‹br›? - person BritishSam; 20.03.2017

HTML — это язык разметки. Независимо от того, сколько строк вы поместите в исходный код, вы не увидите ничего из него в презентации (конечно, при условии, что вы не используете <pre> или white-space:pre). HTML использует элемент <br> для обозначения разрыва строки. Таким образом, вам действительно нужно преобразовать реальные и невидимые разрывы строк, обозначенные символами xA (новая строка, перевод строки, LF, \n) и/или xD (возврат каретки, CR, \r) элементом HTML <br>.

В большинстве языков программирования вы можете просто сделать это, заменив строку "\n" на "<br>".

person BalusC    schedule 10.12.2009

Вы можете обернуть его в <pre> .. </pre>.

person Kuroki Kaze    schedule 10.12.2009
comment
‹pre› имеет семантику, которая выходит далеко за рамки новой строки, и я думаю, что это не очень хорошо применимо к делу. - person Agos; 10.12.2009
comment
Да. В конце концов, все зависит от задачи. - person Kuroki Kaze; 10.12.2009