我不能将PHP的strip_tags函数与另一个函数一起使用

时间:2016-12-28 15:07:49

标签: php string strip-tags

我的PHP strip_tags功能存在问题。我有一个列表,其中包含html标签的白名单。该列表由以下函数生成:

 setAllowedHtmlTags();

此功能的输出为:

 "<a><table><br>"

我想消除其他html标签但是这个。因此我使用strip_tags函数如下:

 echo strip_tags("sample text", setAllowedHtmlTags());

这是我的功能:

function setAllowedHtmlTags()
{
    $db     = new PDO('mysql:host=' . host . ';dbname=' . DBNAME_SCHEMA, user, password);
    $sql    = "SELECT html_tag FROM allowed_html_tags_table";
    $query  = $db->query($sql);

    $tagList = "";

    if ($query->rowCount()){
        foreach($query as $row){
            $tagList .= $row['html_tag'];
        }
    }

    return htmlentities($tagList);
}

但它不起作用。 strip_tags函数会删除所有html标记,包括白名单中的地雷。能帮我解决一下这个问题吗?

2 个答案:

答案 0 :(得分:0)

好的我发现了问题,用html_entity_decode()函数返回值,而htmlentities()函数对我有效。

答案 1 :(得分:-1)

你的功能setAllowedHtmlTags()真的会回复你告诉我们的内容吗? 尝试使用var_dump(setAllowedHtmlTags());来查看函数真正返回的内容。

或许你想打电话给 g etAllowedHtmlTags()?

相关问题