Ver Fonte

bug get_html_translation_table sur PHP < 5.3.4

Corrige https://github.com/marienfressinaud/FreshRSS/issues/337
Alexandre Alapetite há 12 anos atrás
pai
commit
5360ec9851
1 ficheiros alterados com 11 adições e 4 exclusões
  1. 11 4
      lib/lib_rss.php

+ 11 - 4
lib/lib_rss.php

@@ -91,10 +91,17 @@ function timestamptodate ($t, $hour = true) {
 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
-		));
+		if (version_compare(PHP_VERSION, '5.3.4') >= 0) {
+			$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
+			));
+		} else {
+			$htmlEntitiesOnly = array_map('utf8_encode', array_flip(array_diff(
+				get_html_translation_table(HTML_ENTITIES, ENT_NOQUOTES),	//Decode HTML entities
+				get_html_translation_table(HTML_SPECIALCHARS, ENT_NOQUOTES)	//Preserve XML entities
+			)));
+		}
 	}
 	return strtr($text, $htmlEntitiesOnly);
 }