【问题标题】:</textarea> tag not not showing up</textarea> 标签未显示
【发布时间】:2015-06-15 17:13:30
【问题描述】:

我正在尝试让自己成为一个文件管理器,并且我设法在 PHP 中创建了一个“编辑文件”功能。在主页中我确实有一个 textarea,但是当我想编辑主页“源”时,文本恰好停在 textarea 标记关闭的位置 (&lt;/textarea&gt;)

这是问题的表示:

<textarea><textarea>Hello World.</textarea></textarea>

textarea 输出将是

<textarea><textarea>Hello World.

这是因为在代码中我关闭了 textarea 标签,但浏览器的行为就像是从代码外部关闭了它。

如何防止这种情况发生?

【问题讨论】:

  • 听起来您应该阅读有关“html 转义”的内容。好吧,实际上你必须,因为没有你会遇到更大的问题,就像其他人对你的系统做任何他们想要的那样。换句话说:你必须解决一个巨大的安全问题。

标签: html textarea


【解决方案1】:

您需要像这样对内部标签进行编码:

&lt;textarea&gt;&amp;lt;textarea&amp;gt;Hello World.&amp;lt;/textarea&amp;gt;&lt;/textarea&gt;

在 PHP 中,只需通过htmlspecialchars() 运行文件源即可。单次传递不会改变编辑器文本区域中显示的输出。

【讨论】:

  • 太棒了!刚刚尝试了 htmlspecialchars() 并且它有效。谢谢!
【解决方案2】:

如果你不想让它成为一个标签,你应该转义组成标签的字符。

<textarea><textarea>Hello world.&#60/textarea>

或者像 BoltClock 那样,转义所有特殊字符。

<textarea>&lt;textarea&gt;Hello World.&lt;/textarea&gt;</textarea>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 2013-09-19
    • 2013-04-09
    • 2015-08-17
    相关资源
    最近更新 更多