Текстовый формат в <pre></pre> пропал, что не так? - PullRequest
1 голос
/ 14 декабря 2009

Я ввожу некоторый текст в <textarea></textarea>, я вхожу в некоторые разрывы строк, пробелы и т. Д. нарочно. Однако после того, как текст отправлен и обработан в , новая строка, пробелы исчезли, они заменены чем-то вроде \r\n\r\n, что не так? Как мне сохранить оригинальный формат?

 <textarea name="detail" id="detail" rows="7" cols="60" style="font-family:Arial, Helvetica, sans-serif"><?php echo $detail ?></textarea>

Я отображаю текст в HTML.

Это вывод:

Городская агломерация Столичная область Ханчжоу (杭州市 区) имеет постоянное население 3,9319 по состоянию на 2003 год, из которых 2,6367 миллион ... \\\\ r \\\\ н Ханчжоу расположен в северной части провинции Чжэцзян провинция, восточный Китай, на южный конец Большого канала Китай, на равнине середины ... \\\\ r \\\\ nВ конце лета (С августа по сентябрь), Ханчжоу, вместе с другими городами в провинции Чжэцзян провинция, страдают от штормов тайфунов, но тайфуны редко поражают его напрямую. В общем-то. Отредактировано \ r \ n \ r \ nДругая строка.

Тип данных varchar (MySQL), есть ли у него что-то с проблемой?

Ответы [ 3 ]

1 голос
/ 14 декабря 2009

PHP

Разрешить HTML в TextArea

1010 * asp.net *

<%@ Page ValidateRequest="false"
0 голосов
/ 14 декабря 2009

Вы вводите их в веб-приложение? Тот, который вы написали? Вероятно, происходит то, что они распознаются как новые линии. На платформах Windows абзац / новая строка выполняется с помощью \ r (возврат каретки) и \ n (новая строка). Если вы затем переотображаете их на новой странице или сайте, вам нужно будет вернуться обратно в некоторый html или в исходной отправке заменить \ r \ n на <pre>(whitespaceofyourchoice)<\pre>.

\ r и \ n являются символами ASCII и не являются частью форматирования HTML. Таким образом, веб-браузеры будут игнорировать их.

0 голосов
/ 14 декабря 2009

Сначала необходимо запустить вывод через функцию nl2br :

<code><pre><?php echo nl2br($content) ?>

Удостоверьтесь, что в какой-то момент вы избегаете данных для защиты от неприятного ввода - либо перед тем, как вставить их в базу данных, используя mysql_real_escape_string , либо при печати на экран с помощью htmlspecialchars

...