如何在预先填充的textarea上转换为换行符

时间:2012-11-12 21:30:17

标签: php forms textarea newline nl2br

我遇到了<BR />标签出现在预先填充的textarea表单内部的问题(显然没有中断)。因此,这些中断标记需要在textarea中转换为/n。这个预先填充的文本正在通过URL检索,该URL似乎也包含其中的break标记。

基本上是发生了什么以及我需要什么:

我必须从上一页(最初是从数据库中提取)中获取一段文本,并将该文本块加载到表单提交页面上的textarea字段中。然后,用户填写表单字段的其余部分并提交表单,然后将此信息存储到数据库中的特定表中。

为了让文本块能够在第一页上正确显示,我必须使用nl2br才能在页面上正确显示此部分。显然,现在它正在输出带有中断而不是新行的文本。

这意味着当您单击链接以填充下一页上的表单时,该链接中包含中断标记,该标记又显示在下一页和URL中的textarea字段内。< / p>

我很困惑我需要做些什么来再次用<BR />取代/n。好像我可以使用str_replacepreg_replace,但我还没有找到一个如何使用其中任何一个的示例:

<textarea rows="10" cols="50"><? if(isset($_GET['text-property'])){ echo $_GET['text-property']; }?></textarea>

请记住,我仍然在学习PHP,所以我真的需要具体细节,最好是示例。

谢谢!

1 个答案:

答案 0 :(得分:1)

您需要使用preg_replace

<textarea rows="10" cols="50"><? if(isset($_GET['text-property'])){ echo preg_replace('/<br[^>]*?>/si', '\n',$_GET['text-property']); }?></textarea>

Demo