清理Feed聚合器的RSS Feed内容

时间:2012-11-05 11:21:51

标签: php javascript rss html-encode

我正在用PHP构建RSS feed聚合器/阅读器。由于RSS本质上是用户生成的内容,因此我不想依赖于提要内容是安全的。

我正在寻找有关清理Feed内容以便在用户设备上进行存储和显示的建议。目前,我正在使用htmlentities(feed_content)来逃避所有字符,但这不起作用,因为UTF-8编码了无法在Javascript中解码的字符(我用于前端构造)。

- Original: "Soundtrack: Dinosaur Jr. - Don’t Pretend You Didn’t Know I hadn’t thought much..."

- After htmlentities: "Copyright-Infringing Tweets Will Now Be “Withdrawn” Instead of “Disappeared..."

- After JS decodeURI: "Copyright-Infringing Tweets Will Now Be “Withdrawn” Instead of “Disappeared..."

如果我删除上面的htmlentities,文本显示正确。但我不确定这是否是确保数据消毒的正确方法

1 个答案:

答案 0 :(得分:1)

将正确的字符集传递给htmlencode:

echo htmlentities($str, ENT_QUOTES, "UTF-8");

......但通常没有必要这样做。只需确保设置正确的标题,以便浏览器正确解释为utf8:

header('Content-Type: text/html; charset=utf-8');

或者使用json加载:

header('Content-type: application/json; charset=utf-8');