ZipArchive :: getFromName找不到文件名

时间:2011-09-27 06:54:49

标签: php zip ziparchive

知道我在这里做错了吗?它继续“再见”。 zip存档中有一个index.php文件。

$zip = new ZipArchive;
$zip->open($source);
$test = $zip->getFromName('index.php');
if(!$test) {
    die('bye bye');
} else {
    die($test);
}

1 个答案:

答案 0 :(得分:2)

嗯,你应该做的第一个事情就是确保你已经打开它好了,因为它也会失败:

$zip = new ZipArchive;
$rc = $zip->open($source);
if ($rc === TRUE) {
    $test = $zip->getFromName('index.php');
    $zip->close();
    if(!$test) {
        die('bye bye');
    } else {
        die($test);
    }
} else {
    die("could not open: " . $rc);
}

除此之外,请确保您绝对确定您的文件规范是正确的。如有必要,您可以使用getNameIndex一次枚举一个条目,在此过程中打印出其名称,如:

$zippy = new ZipArchive();
$zippy->open($source);
for ($i = 0; $i < $zippy->numFiles; $i++) {
    echo $zippy->getNameIndex($i) . '<br />';
}
$zippy->close();

假设我会浪费时间告诉你检查$source的价值。您可能需要检查,以防万一。