如何使用PHP / HTML保留空格格式?

时间:2008-08-31 05:55:12

标签: php html ascii

我正在从文件中解析文本并将其存储在字符串中。问题是原始文件中的某些文本包含ASCII art以及我想要保留的内容。当我打印出HTML page上的字符串时,即使它具有相同的格式和所有内容,因为它位于HTML中,因此不会保留间距和换行符。在HTML中打印文本的最佳方法是什么,与在原始文本文件中完全相同? 我想举个例子,但不幸的是,我无法在这个降价编辑器中正确显示它:P
基本上,我想了解如何显示ASCII art in HTML

的建议

5 个答案:

答案 0 :(得分:56)

使用< pre>标签(预格式化),将使用单声道间隔字体(对于您的艺术)并保留所有空白

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

</pre>  

您可能需要将任何&lt;'s转换为&amp; lt;的

答案 1 :(得分:11)

<pre></pre>在textarea等可能并不理想。

想要保留新行 - \n\n\r使用UnkwnTech和Brad Mace所提及的nl2br

如果想要保留空格,请使用str_replace

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

当两者都使用时:

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

答案 2 :(得分:6)

打印数据时,使用nl2br()\n\r\n转换为<br>

答案 3 :(得分:3)

对于那些搜索保留从数据库中提取的文本的人来说,这对我有用,将CSS设置为以下,

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

in html:

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

答案 4 :(得分:-1)

只需在PHP代码中回显必要的特殊字符(\ s,\ n或\ r)以及您的字符串即可。

<?php 

echo ("hello world \n")

?>