aboutsummaryrefslogtreecommitdiff
path: root/app/Controllers/importExportController.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/Controllers/importExportController.php')
-rw-r--r--app/Controllers/importExportController.php31
1 files changed, 12 insertions, 19 deletions
diff --git a/app/Controllers/importExportController.php b/app/Controllers/importExportController.php
index aa9ffaba7..d23bb3689 100644
--- a/app/Controllers/importExportController.php
+++ b/app/Controllers/importExportController.php
@@ -64,31 +64,24 @@ class FreshRSS_importExport_Controller extends Minz_ActionController {
// We try to list all files according to their type
$list = array();
- if ($type_file === 'zip' && extension_loaded('zip')) {
- $zip = zip_open($path);
- if (!is_resource($zip)) {
+ if ('zip' === $type_file && extension_loaded('zip')) {
+ $zip = new ZipArchive();
+ $result = $zip->open($path);
+ if (true !== $result) {
// zip_open cannot open file: something is wrong
- throw new FreshRSS_Zip_Exception($zip);
+ throw new FreshRSS_Zip_Exception($result);
}
- while (($zipfile = zip_read($zip)) !== false) {
- if (!is_resource($zipfile)) {
- // zip_entry() can also return an error code!
- throw new FreshRSS_Zip_Exception($zipfile);
- } else {
- $type_zipfile = self::guessFileType(zip_entry_name($zipfile));
- if ($type_file !== 'unknown') {
- $list_files[$type_zipfile][] = zip_entry_read(
- $zipfile,
- zip_entry_filesize($zipfile)
- );
- }
+ for ($i = 0; $i < $zip->numFiles; $i++) {
+ $type_zipfile = self::guessFileType($zip->getNameIndex($i));
+ if ('unknown' !== $type_zipfile) {
+ $list_files[$type_zipfile][] = $zip->getFromIndex($i);
}
}
- zip_close($zip);
- } elseif ($type_file === 'zip') {
+ $zip->close();
+ } elseif ('zip' === $type_file) {
// ZIP extension is not loaded
throw new FreshRSS_ZipMissing_Exception();
- } elseif ($type_file !== 'unknown') {
+ } elseif ('unknown' !== $type_file) {
$list_files[$type_file][] = file_get_contents($path);
}