如何在PHP更换标签?

问题描述 投票:5回答:4

在我的数据库,我有以下文字:

for x in values:
   print x

我想我的HTML页面上打印验证码。它是由PHP打印到HTML文件,因为它是。但是,当通过浏览器显示我的HTML,当然,没有看到这种形式的文本。我看到以下内容:

for x in values: print x

我部分由nl2br解决了这个问题,我也用str_replace(' ','&nbsp',$str)。其结果是我得到:

for x in values:
print x

但我仍然需要print x向右移动。我以为我可以str_replace('\t','   ',$str)解决问题。但我发现,str_replace不打印为“\ t”之前认识的空间。这个空间也不会被识别为只是一个空间。换句话说,我没有得到 之前的任何print

为什么?而如何才能解决?

php html str-replace nl2br
4个回答
10
投票

您需要将\t在双引号它被解释为制表符。单引号字符串没有解释。


7
投票

引用的文字,在双引号,像这样

str_replace("\t", '    ', $str);

PHP会在双引号中的字符串解释的特殊字符,而在单引号字符串,它只会留下字符串,\'的唯一例外。


旧的和过时的答案:

复制从记事本制表符(”“),您的databasestring或这个帖子,并添加以下代码:

str_replace('   ','    ',$str);

(这不是四个空格,这是你从记事本复制的制表符)


3
投票

使用\ t \ n等时,一定要使用双引号


3
投票

它可能会非常棘手,因为标签实际上并没有一个固定的大小,你必须计算制表位。如果打印空白原样,并指示将其显示在浏览器中它可以是简单的。您可以使用<pre>标签:

<pre>for x in values:
   print x</pre>

...或者设置white-space CSS属性:

div.code{
    white-space: pre-wrap
}

(如由其他人所指出的,'\t'是从在PHP "\t"不同。)

© www.soinside.com 2019 - 2024. All rights reserved.