接受新线路但在PHP中过滤html标签

时间:2010-10-18 17:41:16

标签: php

我希望我的输入或textarea值只接受<br>以获得新行

$comment = trim($comment);
$comment = stripslashes($comment) ;

虽然我确实想接受<br>新行,但我不想接受html标签

任何建议?

4 个答案:

答案 0 :(得分:3)

更好的解决方案是允许用户在文本区域中输入新行,并在使用nl2br显示文本时将其翻译为<br>个标记。

当您显示文本时,首先编码html实体,然后将换行符转换为<br>标记。如果您在nl2br之前使用htmlspecialchars,那么您最终也会对<br>代码进行编码。

echo (nl2br(htmlspecialchars($text));

答案 1 :(得分:0)

您可以允许文本区域采用换行符。然后您可以将它们用作<br> s,只需在修剪和剥离所有标记后替换它们,或使用工具将纯文本显示为html。

答案 2 :(得分:-1)

除非您正在构建SQL查询,否则不应该调用stripslashes。

答案 3 :(得分:-2)

您可以使用strip_tags作为其第二个参数:

$allowable_tags

http://www.php.net/manual/en/function.strip-tags.php