как показать контент точно так же, как он сохранен в mysql

У меня есть контент, хранящийся в mysql, как показано ниже:

first line second line third line 

но когда я использую функцию эхо-сигнала, она показывает вывод, подобный этому

 first line second line third line 

однако я хочу показать вывод точно так же, как его сохранено в mysql.

Related of "как показать контент точно так же, как он сохранен в mysql"

echo nl2br ($ str_from_db);

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

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

Другие способы заставить браузер отображать его так, как вы намереваетесь, – это установить тип содержимого как text/plain вместо text/html или использовать <pre> .

В этом конкретном случае вы можете заменить \n на строку с помощью тегов.

Из руководства PHP на str_replace :

 $str = "Line 1\nLine 2\rLine 3\r\nLine 4\n"; // THIS IS YOUR DB VALUE! $order = array("\r\n", "\n", "\r"); $replace = '<br />'; // Processes \r\n's first so they aren't converted twice. $newstr = str_replace($order, $replace, $str); 

Вы просматриваете его так, потому что \n (новые строки) не имеют нового линейного эффекта для HTML. Они просто показывают один рядом друг с другом. Чтобы заставить разрыв строки вам нужно использовать тег <br/> или таблицу или неупорядоченную строку …

Вы можете обернуть содержимое в тегах <pre></pre> или <code></code> или указать свойства CSS для элемента, который используется для отображения содержимого из MySQL.

Например:

CSS:

 .mysql-content { white-space: pre; } 

HTML:

 <div class='mysql-content'>first line second line third line</div> 

Должен отображаться так, как вы хотите.