Как мне сохранить форматирование пробелов с помощью PHP / HTML?
Вопрос
Я разбираю текст из файла и сохраняю его в виде строки.Проблема в том, что часть текста в исходных файлах содержит 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(' ', ' ', $stringVariable);
Когда оба используют это:
$result = str_replace(' ', ' ', $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>