Двойные разрывы строк с тегом 'pre' и 'nl2br'
Я использовал 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
4 ответа
Обтекание текста в <pre>
тег заставит его отображаться как написано: включая пробелы, табуляции и новые строки. Поэтому возврат каретки создаст новую строку И <br />
создаст вторую новую строку.
preg_replace ("/\n+/", "", $pre)
или даже лучше preg_replace ("/[\n\r]+/", "", $pre)
Вам не нужно применять nl2br(), когда вы пишете его внутри предварительного блока.
У меня такая же проблема. Правильный ответ намного проще. Не используйте nl2br с пред.
nl2br добавляет <br />
в текст для HTML, но предварительный тег уже сохраняет формат текста. Вот что это значит. <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>