Подтвердить что ты не робот

Как сохранить форматирование пробелов с помощью PHP/HTML?

Я анализирую текст из файла и сохраняю его в виде строки. Проблема в том, что часть текста в исходных файлах содержит изображения ASCII art и еще много чего, что я хотел бы сохранить. Когда я распечатываю строку на HTML page, даже если она имеет одинаковое форматирование и все остальное, поскольку она находится в HTML, интервалы и разрывы строк не сохраняются. Каков наилучший способ распечатать текст в HTML точно так же, как это было в исходном текстовом файле?
Я хотел бы привести пример, но, к сожалению, я не смог заставить его правильно отображаться в этом редакторе уценки: P
В основном, я хотел бы получить предложения о том, как отображать ASCII art in HTML.

4b9b3361

Ответ 1

использовать <pre> тег (предварительно отформатированный), который будет использовать шрифт с монофоном (для вашего искусства) и сохранить все пробелы

<pre>
text goes here and here 
             and here and here            Some out here
     ▄             ▄█▄ █▄       ▄
 ▄█▀█▓ ▄▓▀▀█▀ ▀▀▀█▓▀▀ ▀▀    ▄█▀█▓▀▀▀▀▀▓▄▀██▀▀
██  ██ ▀██▄▄ ▄█  ▀ ░▒ ░▒   ██  ██ ▄█▄ █▀ ██
█▓▄▀██  ▄ ▀█▌▓█    ▒▓ ▒▓   █▓▄▀██ ▓█ ▀▄  █▓
█▒  █▓ ██▄▓▀ ▀█▄▄█▄▓█ ▓█   █▒  █▓ ▒█  ▓█▄ ▒
    ▀▒           ▀  ▀ █▀       ▀▒  ▀  █▀  ░

</pre>  

Возможно, вам придется преобразовать любую < к < "Ы

Ответ 2

<pre> и </pre> могут быть не идеальными в textarea и т.д.

Если вы хотите сохранить новую строку - \n и \n\r, используйте nl2br, как указано UnkwnTech и Brad Mace.

При желании сохранить пробелы используйте str_replace:

str_replace(' ', '&nbsp;', $stringVariable);

Когда оба используют это:

$result = str_replace(' ', '&nbsp;', $stringVariable);
$result = nl2br($result);

Ответ 3

Когда вы печатаете данные, используйте nl2br() для преобразования \n и \r\n в <br>

Ответ 4

Для всех этих поисковых систем для сохранения текста, полученного из базы данных, это сработало для меня, задав CSS следующим образом:

pre {
     white-space: pre-line;
     text-align : left;
  }

в html:

<pre >
     <?php echo htmlentities($yourText ) ; ?>
</pre>