【问题标题】:How do you prevent <br> tags from displaying in textarea?如何防止 <br> 标签显示在 textarea 中?
【发布时间】:2022-01-08 08:00:13
【问题描述】:

我正在将此字符串保存到我的 sql 数据库中:

   $receipt.= "$tempQty $tempItem : $tempColor :<br> 
                        $tempService <br>
                        &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp Item Total: $$tempPrice 
                        <br><br>";

这在表格中显示良好:

3 Pants : White

Hem: $50.00
Press: $65.00

Item Total: $115.00

但是当我在 textarea 中显示它时,它会显示如下:

3 Pants : White <br>
                        Hem: $50.00
Press: $65.00 <br> 
                        Item Total: $115.00 <br><br>

如何让 textarea 保持格式但不显示 &lt;br&gt; 标签。

【问题讨论】:

  • "我正在将此字符串保存到我的 sql 数据库中" - 这是你的错误......你不应该以这种方式存储数据开始,但存储实际的换行符。然后你应用nl2br 当这个值得到 output 进入页面以显示换行符;和最初存储在数据库中一样,当您想要填充 textarea 时。 (在这两种情况下应用 htmlspecialchars 可能仍然是一个好主意。)

标签: php html sql


【解决方案1】:

你会想要去掉&lt;br&gt; 标签和额外的空间。这是一种通过&lt;br&gt; 拆分数组,修剪数组部分,然后将其与\n 重新组合在一起的方法。

<?php
$receipt = explode("<br>", $receipt);
foreach ($receipt as $n => $r) $receipt[$n] = trim($r);
$receipt = implode("\n", $receipt);
?>    

<textarea cols='60' rows='8'><?php echo $receipt;?></textarea>

【讨论】:

  • 去掉了
    标签,但我仍然有这个奇怪的间距:3 裤子:白色下摆:50.00 美元印刷:65.00 美元项目总计:115.00 美元
  • 我更新了答案
  • 那行得通。谢谢!
【解决方案2】:

您可以将
替换为 &amp;#13;&amp;#10;&amp;#13;&amp;#10;

换行和 回车是 HTML 实体维基百科。这样,您实际上是在解析新行 ("\n"),而不是将其显示为文本。

例子:

    &lt;textarea cols='60' rows='8'&gt;3 Pants : White one.&amp;#13;&amp;#10;&amp;#13;&amp;#10;Hem: $50.00&lt;/textarea&gt;

【讨论】:

    【解决方案3】:

    试试这个:

    $textarea = str_replace('<br>', '\n\r', $textarea);
    

    【讨论】:

    • 糟糕,是的,谢谢!我编辑了它。
    猜你喜欢
    • 1970-01-01
    • 2011-03-02
    • 2015-01-10
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    相关资源
    最近更新 更多