簡體   English   中英

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

[英]How do I keep whitespace formatting using PHP/HTML?

我正在解析文件中的文本並將其存儲在字符串中。 問題是原始文件中的某些文本包含ASCII art以及我想保留的其他內容。 當我在HTML page上打印出字符串時,即使它確實具有相同的格式和所有內容,因為它是在HTML ,間距和換行符也不會保留。 完全按照原始文本文件中的HTML打印出HTML的文本的最佳方法是什么?
我想舉一個例子,但不幸的是,我無法在這個 Markdown 編輯器中正確顯示它:P
基本上,我想就如何ASCII art in HTML顯示ASCII art in HTML提出建議。

使用 <pre> 標簽(預格式化),它將使用單行字體(用於您的藝術)並保留所有空白

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

</pre>  

您可能需要將任何 < 轉換為 &lt;

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

如果想保留新行- \\n\\n\\r使用nl2br由UnkwnTech和布拉德·梅斯提及。

當想要保留空間使用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>

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

<?php 

echo ("hello world \n")

?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM