新的生产线,但过滤器的HTML标签我想我的输入或文本域值只接受<br>
具有新线接受<br>在PHP
$comment = trim($comment);
$comment = stripslashes($comment) ;
虽然我不希望接受<br>
新线,但我不想接受html标签
有什么建议吗?
新的生产线,但过滤器的HTML标签我想我的输入或文本域值只接受<br>
具有新线接受<br>在PHP
$comment = trim($comment);
$comment = stripslashes($comment) ;
虽然我不希望接受<br>
新线,但我不想接受html标签
有什么建议吗?
更好的解决方案是允许用户在文本区域中输入新行,并在您使用nl2br
显示文本时将它们翻译为<br>
标签。
当您显示文本时,首先编码html实体,然后将换行符翻译为<br>
标签。如果您在htmlspecialchars
之前使用nl2br
,那么您最终还会编码<br>
标签。
echo (nl2br(htmlspecialchars($text));
不要使用htmlentities。使用htmlspecialchars。 – 2010-10-18 17:51:59
您可以允许文本区域换行符。然后,您可以使用这些作为<br>
s,只需在修剪并剥离所有标记之后替换它们,或者使用工具将纯文本显示为html。
除非您正在构建SQL查询,否则不应该调用stripslashes。
哦,不,恰恰相反,在构建SQL查询的过程中,stripslashes完全无关紧要。 – 2010-10-18 17:51:22
你已经倒过来了。如果启用了魔术引号,则默认情况下会将斜线添加到所有内容中,所以除非您正在构建SQL查询,否则您需要调用stripslashes *。 – 2010-10-18 17:54:59
@Josh你已经倒退了。如果已启用魔术引号,则需要无条件地致电strips strips ** ** – 2010-10-18 17:57:34
可以使用strip_tags
这需要$allowable_tags
作为其第二个参数:
$comment = strip_tags($comment, '<br>');
为什么你已经有了''
从标签一个textarea?谁愿意输入它而不是按Enter键? – 2010-10-18 17:46:50