我的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标记,包括白名单中的地雷。能帮我解决一下这个问题吗?
答案 0 :(得分:0)
好的我发现了问题,用html_entity_decode()函数返回值,而htmlentities()函数对我有效。
答案 1 :(得分:-1)
你的功能setAllowedHtmlTags()
真的会回复你告诉我们的内容吗?
尝试使用var_dump(setAllowedHtmlTags());
来查看函数真正返回的内容。
或许你想打电话给 g etAllowedHtmlTags()?