在我的数据库,我有以下文字:
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
。
为什么?而如何才能解决?
您需要将\t
在双引号它被解释为制表符。单引号字符串没有解释。
引用的文字,在双引号,像这样
str_replace("\t", ' ', $str);
PHP会在双引号中的字符串解释的特殊字符,而在单引号字符串,它只会留下字符串,\'
的唯一例外。
旧的和过时的答案:
复制从记事本制表符(”“),您的databasestring或这个帖子,并添加以下代码:
str_replace(' ',' ',$str);
(这不是四个空格,这是你从记事本复制的制表符)
使用\ t \ n等时,一定要使用双引号
它可能会非常棘手,因为标签实际上并没有一个固定的大小,你必须计算制表位。如果打印空白原样,并指示将其显示在浏览器中它可以是简单的。您可以使用<pre>
标签:
<pre>for x in values:
print x</pre>
...或者设置white-space
CSS属性:
div.code{
white-space: pre-wrap
}
(如由其他人所指出的,'\t'
是从在PHP "\t"
不同。)