在我的数据库中,我有以下文字:
for x in values:
print x
我想在我的HTML页面上打印此代码。它由PHP打印到HTML文件中。但是当浏览器显示HTML时,我当然看不到这种形式的文本。我看到以下内容:
for x in values: print x
我通过nl2br
部分解决了问题,我也使用了str_replace(' ',' ',$str)
。结果我得到了:
for x in values:
print x
但我仍然需要将print x
转移到右边。我认为我可以通过str_replace('\t',' ',$str)
来解决问题。但我发现str_replace
无法将打印前的空格识别为'\ t'。这个空间也不被认为只是一个空间。换句话说,我在
之前没有得到任何print
。
为什么呢?问题怎么解决?
答案 0 :(得分:10)
您需要将\t
放在双引号中,以便将其解释为制表符。单引号字符串不会被解释。
答案 1 :(得分:7)
用双引号引用文本,例如
str_replace("\t", ' ', $str);
PHP将解释双引号字符串中的特殊字符,而在单引号字符串中,它将保留字符串,唯一的例外是\'
。
旧的并且已弃用的答案:
从记事本,数据库字符串或此帖子中复制制表符(“”),然后添加以下代码:
str_replace(' ',' ',$str);
(这不是四个空格,它是您从记事本中复制的制表符)
答案 2 :(得分:3)
在使用\ t \ n等
时始终使用双引号答案 3 :(得分:3)
这可能很棘手,因为制表符实际上没有固定大小,您必须计算制表位。如果按原样打印空白区域并指示浏览器显示它,则可以更简单。您可以使用<pre>
代码:
<pre>for x in values:
print x</pre>
...或设置white-space
CSS属性:
div.code{
white-space: pre-wrap
}
(正如其他人所说,'\t'
与PHP中的"\t"
不同。)