用htmlentities保持白色space

Keep white space with htmlentities

目前,这是我的代码

$str = file_get_contents($sFile);
echo nl2br(htmlentities($str));

如何在输出文件时保留文件中的空格(制表符和多个空格)?

示例输入:

if(a==b){
  code   
    more code 
}

应该完全输出(应用 htmlentities),但当前输出

if(a==b){
code
more code
}

如何保留空格?

将输出包装在 <pre>...</pre> 标签中:

<pre>
if(a==b){
  code   
    more code 
}
</pre>

浏览器会忽略多余的空格,所以你必须告诉它不要忽略它。

您可以使用 space 的 html 实体来保留 space:

echo str_replace([' ', "\t"], ['&nbsp;', '&nbsp;&nbsp;'], nl2br(htmlentities($str)));