安全接受和显示特殊字符

时间:2015-02-22 23:25:40

标签: php

我知道之前已经说过,很可能是重复的,但我在整理我找到的所有信息时遇到了麻烦。

我有用于存储信息的输入框。我想允许用户输入他们想要的任何内容并显示它。但是,如果恰好是<?php die(); ?>,我显然不希望它执行。

我知道有htmlspecialchars()之类的内容,但是,如果用户输入类似<b>的内容,则会显示&lt;b&gt;

有解决方法吗?

1 个答案:

答案 0 :(得分:0)

<?php
$string = '<?php echo "aaa;"?><b>sss</b>';
print "before: ". htmlspecialchars($string). "<br>";


print "after: ". cleanInput($string);

function cleanInput($input) {
    $output = strip_tags($input, '<p><a><b><div>');
    return htmlspecialchars($output);
}

其中<p><a><b><div>是允许的标签。这很好,你只能设置你想要允许的标签。这也将剥离<script>和其他标签

阅读: http://php.net/strip_tags