在PHP中显示字符串仅作为纯文本

时间:2014-03-02 21:08:39

标签: php

我的数据库中的数据与此pastebin示例中的文本类似:http://pastebin.com/ipuXarEX

我有这个只显示纯文本:

$TicketUpdateDisplay = preg_replace('/<[^<]+?>/','',$result2["displaydata"]);

工作正常,但它会删除所有换行符并在顶部显示此字符串:

v\\:* {behavior:url(#default#VML);} o\\:* {behavior:url(#default#VML);} w\\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} 

然后是其余的数据

数据库中的代码有时在行/段之间有几个换行符,我想减少这个。不要完全删除换行符,但只显示1

更新

我也尝试过:

'$ TicketUpdateDisplay = strip_tags(stripslashes(nl2br($ result2 [“displaydata”])));'

3 个答案:

答案 0 :(得分:1)

您可以尝试echo nl2br(strip_tags($string));

为此添加trim()效果会更好。

试试这个:nl2br(trim(strip_tags($string)))

答案 1 :(得分:0)

试试这个,因为HTML忽略了PHP换行符(\n):

$string = str_replace("\n",'<br>',$string);

假设$string包含数据。

此外,根据评论中建议的,您可以使用nl2br()

$string = nl2br($string);

答案 2 :(得分:0)

要做的第一件事是摆脱额外的反斜杠:

if (magic_quotes_gpc())) {
    $value = stripslashes($value);
}

魔术引号已在5.4

中删除

然后,剥离所有标签并修剪生成的字符串:

$value = trim(strip_tags($value));

最后,摆脱无关的新线:

$value = preg_replace('/\n\s+$/m', '', $value);