我不能使用PHP';s strip_标签功能与另一个功能

我不能使用PHP';s strip_标签功能与另一个功能,php,string,strip-tags,Php,String,Strip Tags,我对PHP的strip\u标签函数有问题。我有一个列表,其中包括一个html标签的白名单。该列表由以下函数生成: setAllowedHtmlTags(); 此函数的输出为: "<a><table><br>" 这是我的功能: function setAllowedHtmlTags() { $db = new PDO('mysql:host=' . host . ';dbname=' . DBNAME_SCHEMA, user, pass

我对PHP的
strip\u标签
函数有问题。我有一个列表,其中包括一个html标签的白名单。该列表由以下函数生成:

 setAllowedHtmlTags();
此函数的输出为:

 "<a><table><br>"
这是我的功能:

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_标签
函数删除所有html标签,包括我的白名单中的地雷。你能帮我解决这个问题吗?

你的函数
setAllowedHtmlTags()
真的返回了你告诉我们的吗? 尝试
var_转储(setAllowedHtmlTags())
查看函数真正返回的内容


或者您想调用getAllowedHtmlTags()?

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

添加
setAllowedHtmlTags
函数的代码不是很重要,但为什么要使用函数只返回

,为什么不设置一个
常量
或其他什么。猜测:
设置允许的HTMLTAGS
回显
字符串,而不
返回
它…?因为我从数据库获取了所有字符串。它返回的正是我期望的字符串。是的,它返回的正是我期望的字符串。
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);
}