Как сохранить форматирование пробелов с помощью PHP / HTML? - PullRequest
30 голосов
/ 31 августа 2008

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

Ответы [ 4 ]

56 голосов
/ 31 августа 2008

используйте

tag (pre formatted), that will use a mono spaced font (for your art) and keep all the white space</p>

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

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

11 голосов
/ 19 февраля 2013

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

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

Для сохранения пробелов используйте str_replace :

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

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

$result = str_replace(' ', '&nbsp;', $stringVariable);
$result = nl2br($result);
6 голосов
/ 31 августа 2008

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

3 голосов
/ 18 марта 2015

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

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

в html:

<code><pre >
     <?php echo htmlentities($yourText ) ; ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...