Извлечение данных из zip-файла (PHP) - PullRequest
0 голосов
/ 24 февраля 2009

У меня есть учебное пособие с веб-сайта Net Tuts , которое используется для загрузки zip-файла и извлечения данных из этого файла на сервер.

Копирование и вставка кода прямо с веб-страницы не сработало, на полпути во время обработки скрипта произошла ошибка.

Fatal error: Cannot instantiate non-existent class: ziparchive in /www/website_here.co.uk/httpdocs/test/functions.php on line 6

Возможно ли, что это связано с версией PHP, которую я использую? Вот код, на котором он застревает:

<?php

function openZip($file_to_open) {
    global $target;
    global $unique_folder;
    $zip = new ZipArchive();
        $x = $zip->open($file_to_open);
        if ($x === true) {
            $zip->extractTo($target . $unique_folder);
            $zip->close();

            unlink($file_to_open); #deletes the zip file. We no longer need it.
        } else {
            die("There was a problem. Please try again!");
        }
    }

?>

строка 6: $ zip = new ZipArchive ();

Я использую PHP версии 4.3.9.

Ответы [ 5 ]

3 голосов
/ 24 февраля 2009

Вы также можете использовать PclZip:

include('pclzip.lib.php');
$zip = new PclZip($file_to_open);
if ($zip->extract(PCLZIP_OPT_PATH, $target . $unique_folder) == 0) {
    die("There was a problem. Please try again!");
} else {
    unlink($file_to_open);
}

http://www.phpconcept.net/pclzip

2 голосов
/ 24 февраля 2009

В PHP 4 вам абсолютно необходимо установить PECL zip 1.1.0 (или новее), чтобы иметь доступ к классу ZipArchive. Следуйте этим инструкциям .

Если это невозможно, вам придется использовать не-OO zip_open, zip_read и т. Д. API.

1 голос
/ 30 октября 2009
include('pclzip.lib.php');
$zip = new PclZip($file_to_open);
if ($zip->extract(PCLZIP_OPT_PATH, $target . $un_f) == 0) {
    close("close");
} else {
    unlink($file_op);
}

Я согласен использовать PclZip, и если у вас нет времени на его кодирование, используйте извлечение данных Вам также необходимо использовать справочные библиотеки

0 голосов
/ 18 мая 2010
$zipn=$_REQUEST['zip'];
echo $zipn;

$zip = new ZipArchive;
echo $_SERVER['DOCUMENT_ROOT']."/";
if ($zip->open($zipn) === TRUE) {
  $zip->extractTo($_SERVER['DOCUMENT_ROOT']."/");
  $zip->close();
  echo 'ok';
} else {
  echo 'failed';
}

---------- susheel susheel1104@gmail.com

0 голосов
/ 24 февраля 2009

Вам нужна ссылка на библиотеку, содержащую ZipArchive класс

...