2013-06-04 2 views
4

Я получаю данные от пользователя в форме через PHP на сайте WordPress (адрес специально), и я хочу иметь возможность отображать информацию, которую я собираю, с теми же разрывами строк (отделяя различные компоненты адреса) на другой странице. Он отображается правильно, если я помещаю его в текстовое поле, но если я получу данные и эхо в его div, он не поддерживает разрывы строк. Что я могу сделать?Keep Line Breaks from Textarea

+5

['nl2br()'] (http://php.net/nl2br)? – BlitZ

+0

lol ты потрясающий - я такой n00b на PHP, но мы все должны научиться когда-нибудь! – William

ответ

0

Используйте, например, <pre>. Но это будет выглядеть довольно уродливо.

Или заменить разрывы строки с <br/>

2

HTML сворачивает любое количество пробелов (кроме неразрывного пробела), включая новые линии в единое пространство. Для того, чтобы поддерживать новые линии, вам нужно будет заменить новые линии с <br> или использовать <pre> тегов или использовать один из white-space CSS rules designed to control this behaviour.

19

вы хотите использовать пробельный атрибут CSS http://www.w3schools.com/cssref/pr_text_white-space.asp

Таким образом, вы будете иметь что-то вроде

<p class="whitespace"><?= $input_from_textarea ?></p> 

с помощью CSS:

.whitespace { 
    white-space: pre-wrap; 
} 

не вручную очистить ваш вход заменяет новые элементы линии тегами разрыва. Это делает ваши данные менее многоразовыми и работает намного больше.

Вы можете использовать функцию php nl2br(), но это не дает вам такого контроля, как управление отображением через css.

+1

Этот ответ должен быть принят! –

5

Вы можете использовать echo nl2br($string) конвертировать \n в <br> перерыв HTML строки.