我正在解析文件中的文本并将其存储在字符串中。问题是原始文件中的某些文本包含 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>  

您可能必须将任何 < 转换为 <的

其他提示

<pre></pre> 在文本区域等中可能不理想。

当想要保留新行时 - \n\n\r 使用 NL2br 正如 UnkwnTech 和 Brad Mace 所提到的。

当想要保留空间时使用 字符串替换:

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