2011-09-22 95 views
0

我试图做消息“原始信息”后换行,我试图与这一点,但它让我展示
从textarea中删除<br />?

---Original message---<br /> 
message 

<textarea id="txtMessage" rows="10" cols="50"><?php echo nl2br(str_replace('<br/>', " ","---Original message---\n".$array['message']));?></textarea> 

我想要的东西,喜欢这样的:

---Original message--- 
message 

任何建议?

+4

只是出于好奇,你有没有阅读[上nl2br文档】(HTTP:/ /php.net/manual/en/function.nl2br.php)? –

+0

所以你试图摆脱'
',然后让他们?这是无稽之谈。 **摆脱nl2br **,因为它将'\ n'转换为'
' –

+0

对不起,我没有阅读文档,但现在我明白了 –

回答

4

这应该做你希望它是什么:

<?php echo str_replace('<br />', " ","---Original message---\n".$array['message']);?> 

nl2br - 在一个字符串(from php.net

例如,所有的换行之前插入HTML换行符:

echo "<textarea>HI! \nThis is some String, \nit works fine</textarea>"; 

结果:

new line example in textarea

但如果你试试这个:

echo nl2br("<textarea>HI! \nThis is some String, \nit works fine</textarea>"); 

你会得到这样的:

new line with nl2br in texarea

因此在将其保存到数据库之前,您不应该使用nl2br,否则每次尝试编辑文本时都必须清除<br />!只要将其作为文本打印出来就可以使用它。

+0

如果我想添加空白之前的空白空间像2 o多?感谢您的回答 –

+0

他们将被忽略。除非你使用' ',这将被拧上像htmlspecialchars。为什么你想要多用一个空间? –

+0

是的,我认为这将是更好的只是为了更好的格式, –

1
echo nl2br(str_replace('<br/>', " ", ...)); 

应该

echo str_replace('<br />', ' ', ...); 
+0

谢谢我已经找到错误 –

1

PHP函数 “nl2br” 需要换行,并将它们转换为BR标签。如果你不想这样做,你应该删除它:)。

呃,被瑞恩殴打。

+0

我已将其删除如果我想在开始添加新行?然后其余的 –

0

您试图更换<br/>,但原文有<br />(注意空格)。

0

您正在删除HTML中断,然后将它们添加回去!看看你的代码:

nl2br(str_replace('<br/>', " ","---Original message---\n".$array['message'])) 

首先,str_replace取代'<br/>'用空间。然后,nl2br为其找到的每一个换行符(\n)都添加一个<br>

删除nl2br调用完成。

+0

我删除和它的所有,但现在如果我想添加新行在开始??然后其余的 –

+0

添加一个''\ n“'字符,用双引号括起来。 – bfavaretto

+0

我以这种方式尝试过,但它是相同的效果<?php echo“\ n”。“---原始消息--- \ n”。$ array ['message'];?> –

0

如果你想要做nl2br上所有的文字,除了你能做到这一点的textarea里面有什么:

function clean_textarea_of_br($data) { 
    return str_replace(array("<br>", "<br/>", "<br />"), "", $data[0]); 
} 

$message = preg_replace_callback('#<textarea[^>]*>(.*?)</textarea>#is',clean_textarea_of_br,$message);