PHP で RSS フィード アグリゲーター/リーダーを構築しています。RSS は本質的にユーザー生成コンテンツであるため、フィード コンテンツが安全であることに依存したくありません。
ユーザーのデバイスに保存および表示するためにフィード コンテンツをサニタイズする方法についてアドバイスを求めています。現在、htmlentities(feed_content)
すべての文字をエスケープするために使用していますが、Javascript でデコードできない文字を UTF-8 でエンコードしているため、正しく機能しません (フロントエンドの構築に使用します)。
- 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 を削除すると、テキストが正しく表示されます。しかし、それがデータを確実にサニタイズする正しい方法かどうかはわかりません