PHP Longtext для отображения, как написал пользователь
Мне нужно знать, как отображать информацию, помещенную в поле длинного текста базы данных, так, как она была написана.
Например, если пользователь пишет в этом ниже:
My life is full of love I fly like
wedding doves I blow passed stop signs
That intersect with hate lines
-
I know what I am
I know who I be
If you can't accept me
Then don't friend me
Я хочу, чтобы он отображал текст из базы данных так же, как пользователь написал его в текстовой области, вместо того, чтобы отображать его в таком виде:
Моя жизнь полна любви, Я летаю, как свадебные голуби, Я сдуваю мимо Стоп Стрелки, которые пересекаются с линиями ненависти. Я знаю, кто я. Я знаю, кем я являюсь.
Как я могу это сделать в PHP для правильного отображения информации с помощью PHP?
4 ответа
Использование nl2br()
, Преобразует разрывы строк (например, из текстовых полей) в HTML <br />
теги.
Если вы используете nl2br для данных, они должны отображаться примерно с тем же форматированием, что и в исходной текстовой области.
Тем не менее, я действительно рекомендую сначала прочитать о таких вещах, как обработка SQL-инъекций, экранирование и т. Д., Поскольку вы вполне можете настроить себя на некоторые проблемы межсайтового скриптинга (XSS), если не будете осторожны.
Если вы хотите отобразить предварительно отформатированный текст, заключите его в <pre></pre>
теги
<pre>...your text here...</pre>
Многим людям не нравится <pre>
элемент, потому что он часто используется плохими разработчиками и дизайнерами, но это именно тот случай, для которого он должен использоваться.
Большинство браузеров отображают предварительно отформатированный текст иначе, чем обычный текст, поэтому вам, возможно, придется настроить таблицу стилей
body, pre {font-family: ...;font-size:....}
Я не могу подчеркнуть это достаточно: вы никогда не должны выводить сгенерированный пользователем контент, как он есть, но будьте осторожны, чтобы избежать всего текста, который вы выводите (см.: http://php.net/manual/en/function.htmlspecialchars.php),