禁止在textarea表单字段中发布HTML

Luc*_*cas 0 html php tags

我有一个文本区域,用户可以在其中定义帖子.该字段应该允许BBCODE而不是HTML.

目前HTML是允许的,但不应该.

如何禁止用户发布HTML标记?

小智 5

这里有两个主要选择.您可以转义HTML,因此将其视为纯文本,或者您可以将其删除.无论哪种方式都是安全的,但逃避通常是用户期望的.

要进行转义,请在处理bbcode之前在输入上使用htmlspecialchars() [ docs ].

echo htmlspecialchars("<b>Hello [i]world![/i]</b>")
Run Code Online (Sandbox Code Playgroud)
&lt;b&gt;Hello [i]world![/i]&lt;/b&gt;
Run Code Online (Sandbox Code Playgroud)

要完全删除HTML标记,请改为使用strip_tags() [ docs ]:

echo strip_tags("<b>Hello [i]world![/i]</b>")
Run Code Online (Sandbox Code Playgroud)
Hello [i]world![/i]
Run Code Online (Sandbox Code Playgroud)