2013-11-14 2 views
0

У меня есть небольшая проблема с текстом для чтения из моей базы данных. После того, как пользователь подтвердил свое новое сообщение, он сохраняет в базе данных, как это (например, я хочу, чтобы он это сделал).PHP не показывает новую строку

enter image description here

, но на веб-странице, он будет игнорировать эти строки, и только эхо все, на одной и той же линии.

enter image description here

Вот немного мой исходный код:

$objekttekst=str_replace("\\r\\n", "<br>", $obj->innhold); 

     $objekttittel=$obj->tittel; 
?> 
<h2><?=$objekttittel?></h2> 

<p><?=$objekttekst?></p> 

может кто-то помочь мне? thanks

+1

' "\\ г \\ п"' заменяемый буквально '\ г \ n' к '
', а не то, что '\ r \ n', потому что вы избегаете escape-символа. – Havenard

+0

http://stackoverflow.com/q/9457835/67332 –

ответ

1

Ввод текстового поля предварительно отформатирован, что означает, что он будет показывать любые новые строки, которые вводит пользователь. Тем не менее, HTML-рендеринг (веб-браузер) не отображает никаких строк строки из ввода, если только строки новой строки не были явно вставлены с такими тегами, как <BR>.

У вас есть несколько вариантов здесь. Наверняка эти три не являются вашими единственными опциями, но именно те, которые я лично использовал чаще всего.

Форма текстовое поле с предварительно отформатированный текст

Если вы хотите отобразить данные (objekttekst) в аналогичном текстовое поле, где был дан вход, вы можете сделать:

<h2><?=$objekttittel?></h2> 
<p><textarea><?=$objekttekst?></textarea></p> 

Это вам подойдет лучше всего в ситуации, когда пользователю нужна возможность редактировать запись.

Preformatting

Если вы хотите, чтобы отобразить текст, как это, вы всегда можете окружить его <PRE>...</PRE>. Это покажет любые новые строки, отступы и т. Д. Обратите внимание, что это приведет к использованию шрифта фиксированной ширины, такого как Courier New.

Преобразовать символы новой строки в <BR> теги

Использование функции nl2br() как уже упоминалось в другом ответе. См.: http://php.net/manual/en/function.nl2br.php для получения дополнительной информации.

Дополнительное примечание ...

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

0

Вы можете окружить строку с <pre> тег вместо того, чтобы заменить \n с <br>

Пример:

<?php 
    $objekttekst=$obj->innhold 
    $objekttittel=$obj->tittel; 
    ?> 
    <h2><?=$objekttittel?></h2> 
    <p><pre><?=$objekttekst?></pre></p> 
Смежные вопросы