fetch_file_contents: decompress gzipped data
af_readability: remove utf8 preamble hack
This commit is contained in:
parent
782eda45db
commit
a5517fe857
|
@ -1612,7 +1612,7 @@ class RSSUtils {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function is_gzipped($feed_data) {
|
static function is_gzipped($feed_data) {
|
||||||
return mb_strpos($feed_data, "\x1f" . "\x8b" . "\x08", 0, "US-ASCII") === 0;
|
return mb_strpos($feed_data, "\x1f" . "\x8b" . "\x08", 0, "US-ASCII") === 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -437,6 +437,14 @@
|
||||||
|
|
||||||
curl_close($ch);
|
curl_close($ch);
|
||||||
|
|
||||||
|
$is_gzipped = RSSUtils::is_gzipped($contents);
|
||||||
|
|
||||||
|
if ($is_gzipped) {
|
||||||
|
$tmp = @gzdecode($contents);
|
||||||
|
|
||||||
|
if ($tmp) $contents = $tmp;
|
||||||
|
}
|
||||||
|
|
||||||
return $contents;
|
return $contents;
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
@ -522,6 +530,15 @@
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$is_gzipped = RSSUtils::is_gzipped($data);
|
||||||
|
|
||||||
|
if ($is_gzipped) {
|
||||||
|
$tmp = @gzdecode($data);
|
||||||
|
|
||||||
|
if ($tmp) $data = $tmp;
|
||||||
|
}
|
||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -148,6 +148,7 @@ class Af_Readability extends Plugin {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function extract_content($url) {
|
public function extract_content($url) {
|
||||||
|
|
||||||
global $fetch_effective_url;
|
global $fetch_effective_url;
|
||||||
|
|
||||||
$tmp = fetch_file_contents([
|
$tmp = fetch_file_contents([
|
||||||
|
@ -158,7 +159,7 @@ class Af_Readability extends Plugin {
|
||||||
if ($tmp && mb_strlen($tmp) < 1024 * 500) {
|
if ($tmp && mb_strlen($tmp) < 1024 * 500) {
|
||||||
$tmpdoc = new DOMDocument("1.0", "UTF-8");
|
$tmpdoc = new DOMDocument("1.0", "UTF-8");
|
||||||
|
|
||||||
if (!$tmpdoc->loadHTML('<?xml encoding="utf-8" ?>\n' . $tmp))
|
if (!$tmpdoc->loadHTML($tmp))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (strtolower($tmpdoc->encoding) != 'utf-8') {
|
if (strtolower($tmpdoc->encoding) != 'utf-8') {
|
||||||
|
|
Loading…
Reference in New Issue