从zip文件中提取数据(PHP)

时间:2009-02-24 01:32:00

标签: php zip zlib

我有一个来自网站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 个答案:

答案 0 :(得分:3)

您也可以使用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

答案 1 :(得分:2)

在PHP 4上,您绝对需要安装PECL zip 1.1.0(或更新版本)才能访问ZipArchive类。关注these instructions

如果无法做到这一点,则必须使用非OO zip_openzip_read等API。

答案 2 :(得分:1)

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,如果您没有时间对其进行编码,请使用extracting data您还需要使用参考库

答案 3 :(得分:0)

您需要对包含ZipArchive

的库的引用

答案 4 :(得分:0)

$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