Я использовал функцию nl2br для pre тегов, но я столкнулся с какой-то странной проблемой: есть 2 разрыва строки, но есть только один тег <br /> .
Например:
code in line 1<br /> code in line 2<br />
Отображается как:
code in line 1 code in line 2
вместо:
code in line 1 code in line 2
Обтекание текста тегом <pre> заставит его отображаться как написанное: включая пробелы, вкладки и новые строки. Поэтому возврат каретки создаст новую строку И <br /> создаст вторую новую строку.
preg_replace ("/\n+/", "", $pre) или даже лучше preg_replace ("/[\n\r]+/", "", $pre)
Вам не нужно применять nl2br (), когда вы пишете его внутри предварительного блока.
У меня такая же проблема. Правильный ответ намного проще. Не используйте nl2br с pre.
nl2br добавляет <br /> в текст для html, но pre tag уже сохраняет текстовый формат. Вот что это значит. <pre> = предварительно отформатирован.
Да, что-то вроде этого будет работать, пока это не произойдет.
<pre> preg_replace ("/[\n\r]+/", "",nl2br(file_get_contents("/crashbody.txt"))) </pre>
Но это глупо. Вы добавляете разрывы строк и удаляете их. Чтобы сохранить ваши пробелы и разрывы строк, пусть <pre> выполняет свою работу.
<pre> file_get_contents("/crashbody.txt") </pre>
Или еще лучше:
<div style = "white-space: pre; text-align:left;"> file_get_contents("/crashbody.txt") </div>