Двойная линия прерывается с тегом '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 

Обтекание текста тегом <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>