我有一个简介系统,提到了
我的帖子表中的'content'值存储为:
<a href="/profile/Alice">Alice</a> Alice, you there? <strong>lol</strong>
但是,最终结果是所有内容都显示为HTML(我使用json和jquery显示它们)。我怎样才能使它只显示HTML(对于我提到的链接),而不是所有用户指定的? (即&lt; strong&gt;)
我希望帖子能够在超级链接中显示提及,但与此同时,我不希望所有用户输入的html都显示为html。
我使用jQuery追加来显示我的帖子。
谢谢!
答案 0 :(得分:0)
$str = '<a href="/profile/Alice">Alice</a> Alice, you there? <strong>lol</strong>';
$str = html_entity_decode($str);
echo $str;
exit;
答案 1 :(得分:0)
如果我明白你想要什么,我想这会做到。 find("*")
仅匹配HTML标记,因此标记之外的文本节点将被过滤掉。
var content = '<a href="/profile/Alice">Alice</a> Alice, you there? <strong>lol</strong>';
var wrapped = $("<div>", { html: content });
$("#output").append(wrapped.find("*"));
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="output"></div>
&#13;
我首先将其打包在DIV
中,因为.find()
只搜索子级,而不是顶级节点。