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

StackOverflow https://stackoverflow.com/questions/36656

  •  09-06-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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

</pre>  

Возможно, вам придется конвертировать любые < s в & amp; lt; «Ы

Другие советы

тот самый <pre> и </pre> может быть, это не идеально в текстовом поле и т.д..

Когда вы хотите сохранить новую строку - \n и \n\r использование nl2br как упоминали UnkwnTech и Брэд Мейс.

Если вы хотите сохранить пробелы, используйте str_replace - str_replace:

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

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

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

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

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

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

в html:

<pre >
     <?php echo htmlentities($yourText ) ; ?>
</pre>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top