diff options
author | Andrew Dolgov <[email protected]> | 2011-12-28 11:00:58 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2011-12-28 11:00:58 +0400 |
commit | 3382bce16dd885d4f2894c18c2d4c82438be1dcc (patch) | |
tree | 49c3e361408998bd87f3ceef4eda8a3952254f15 /include/functions.php | |
parent | 41f68571abfb56992896d6bc9677a79284285290 (diff) |
support gzipped xml import
Diffstat (limited to 'include/functions.php')
-rw-r--r-- | include/functions.php | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/include/functions.php b/include/functions.php index 018e518eb..1b780d955 100644 --- a/include/functions.php +++ b/include/functions.php @@ -5116,13 +5116,35 @@ return $rv; } + if (!function_exists('gzdecode')) { + function gzdecode($string) { // no support for 2nd argument + return file_get_contents('compress.zlib://data:who/cares;base64,'. + base64_encode($string)); + } + } + function perform_data_import($link, $filename, $owner_uid) { $num_imported = 0; $num_processed = 0; $num_feeds_created = 0; - $doc = DOMDocument::load($filename); + $doc = @DOMDocument::load($filename); + + if (!$doc) { + $contents = file_get_contents($filename); + + if ($contents) { + $data = @gzuncompress($contents); + } + + if (!$data) { + $data = @gzdecode($contents); + } + + if ($data) + $doc = DOMDocument::loadXML($data); + } if ($doc) { |