Skip to content

Commit

Permalink
Décode les entités HTML en conservant les entités XML
Browse files Browse the repository at this point in the history
N'ayant pas trouvé comment régler SimplePie pour ne pas avoir d'entités
HTML comme `é`, voici un patch qui les décode en sortie de
SimplePie tout en conservant les entités XML comme `&`.
Contribue à #247
  • Loading branch information
Alkarex committed Nov 11, 2013
1 parent 76a027c commit a4fc7be
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions app/models/Feed.php
Original file line number Diff line number Diff line change
Expand Up @@ -241,12 +241,22 @@ public function load () {
}
}
}
static function html_only_entity_decode($text) {
static $htmlEntitiesOnly = null;
if ($htmlEntitiesOnly === null) {
$htmlEntitiesOnly = array_flip(array_diff(
get_html_translation_table(HTML_ENTITIES, ENT_NOQUOTES, 'UTF-8'), //Decode HTML entities
get_html_translation_table(HTML_SPECIALCHARS, ENT_NOQUOTES, 'UTF-8') //Preserve XML entities
));
}
return strtr($text, $htmlEntitiesOnly);
}
private function loadEntries ($feed) {
$entries = array ();

foreach ($feed->get_items () as $item) {
$title = strip_tags($item->get_title ());
$author = $item->get_author ();
$title = self::html_only_entity_decode (strip_tags ($item->get_title ()));
$author = self::html_only_entity_decode ($item->get_author ());
$link = $item->get_permalink ();
$date = strtotime ($item->get_date ());

Expand All @@ -255,11 +265,12 @@ private function loadEntries ($feed) {
$tags = array ();
if (!is_null ($tags_tmp)) {
foreach ($tags_tmp as $tag) {
$tags[] = $tag->get_label ();
$tags[] = self::html_only_entity_decode ($tag->get_label ());
}
}

$content = $item->get_content ();
$content = self::html_only_entity_decode ($item->get_content ());

$elinks = array();
foreach ($item->get_enclosures() as $enclosure) {
$elink = $enclosure->get_link();
Expand Down

0 comments on commit a4fc7be

Please sign in to comment.