【问题标题】:PHP in HTML Form - textarea echoing <p>HTML 表单中的 PHP - textarea 回显 <p>
【发布时间】:2014-09-09 08:46:28
【问题描述】:

我有以下代码:

<textarea max-length="1000">
<?php echo $field?>
</textarea>

这应该是回声:

Lorem ipsum dolor sit amet

Nullam non molestie ligula.

但我得到的是原始代码:

<p>Lorem ipsum dolor sit amet</p><p>Nullam non molestie ligula.</p>

我试图找到一个解决方案,但是到目前为止,论坛让我失望了!有什么想法吗?

【问题讨论】:

  • 您不能将 html 标签放在 textarea 中,它将被表示为原始文本。你必须删除它们。
  • $field 是如何定义和填充的?
  • 谢谢!我可以用一些东西来代替它们以保持视觉上的休息吗?
  • $field 正在从 mysql 数据库中读取。
  • 您可能会使用nl2br(),但如果$field 包含HTML,那么您需要重新考虑这一点。

标签: php html forms textarea


【解决方案1】:

您好,欢迎来到 Stackoverflow!

尝试在回显 $field 之前添加它,并在为它分配 MySQL 的值之后:

$field = str_replace("</p><p>", "\n", $field);
$field = str_replace("<p>", "", $field);
$field = str_replace("</p>", "", $field);

它甚至不是迄今为止最优雅的解决方案,但它应该可以工作。

【讨论】:

  • @Kit 很高兴听到这个消息。请记住,这将仅过滤和删除 &lt;p&gt; 标记,同时还将 &lt;p&gt;&lt;/p&gt; 替换为新行 (\n)
【解决方案2】:

(迟到的答案,没有看到接受的答案。正忙于寻找解决方案)。

看看这是否适合你。它适合我。

$field = '<p>Lorem ipsum dolor sit amet</p><p>Nullam non molestie ligula.</p>';
$newcontent = preg_replace("/<p[^>]*?>/", "", $field);
$newcontent = str_replace("</p>", "\n\n", $newcontent);

// echo $newcontent;

?>

<textarea max-length="1000">
<?php echo $newcontent;?>
</textarea>

HTML 源代码:

<textarea max-length="1000">
Lorem ipsum dolor sit amet

Nullam non molestie ligula.

</textarea>

【讨论】:

    猜你喜欢
    • 2014-03-18
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 2015-01-23
    • 1970-01-01
    • 2012-12-10
    • 2016-12-03
    • 1970-01-01
    相关资源
    最近更新 更多