Я использовал функцию 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>