5

この構造のサイトに compress_file.zip があります

ZIPファイル

version_1.xフォルダーからすべてのコンテンツをルート フォルダーに抽出したい:

希望

どうやってやるの?再帰なしで可能ですか?

4

3 に答える 3

6

可能ですが、次を使用して自分でファイルを読み書きする必要がありますZipArchive::getStream

$source = 'version_1.x';
$target = '/path/to/target';

$zip = new ZipArchive;
$zip->open('myzip.zip');
for($i=0; $i<$zip->numFiles; $i++) {
    $name = $zip->getNameIndex($i);

    // Skip files not in $source
    if (strpos($name, "{$source}/") !== 0) continue;

    // Determine output filename (removing the $source prefix)
    $file = $target.'/'.substr($name, strlen($source)+1);

    // Create the directories if necessary
    $dir = dirname($file);
    if (!is_dir($dir)) mkdir($dir, 0777, true);

    // Read from Zip and write to disk
    $fpr = $zip->getStream($name);
    $fpw = fopen($file, 'w');
    while ($data = fread($fpr, 1024)) {
        fwrite($fpw, $data);
    }
    fclose($fpr);
    fclose($fpw);
}
于 2011-11-12T05:00:33.713 に答える
0

のドキュメントを参照してくださいextractTo。例 1。

于 2011-11-12T04:51:28.880 に答える