2010-12-13 51 views

答えて

3

PHPはan extensionを持つディレクトリからすべてのファイルを表示するために使用されます。

その1つのファイルにアクセスするには、アーカイブ全体を解凍する必要はありません。 ZipArchive::extractToメソッドを使用すると、抽出する内容を指定できます。

$zip = new ZipArchive; 
$res = $zip->open('test.zip'); 
$zip->extractTo('my/extract/folder/', 'foo.txt'); 
1

私の知る限り、圧縮データにはこのようにアクセスすることはできません。最初に解凍する必要があります。

あなたがが快適であれば、あなたはこのPHP拡張モジュールを使用することができます。http://www.php.net/manual/en/book.zip.php

+1

それを解凍します。しかし、アーカイブ全体ではありません。必要なファイルのみを解凍することができます。 –

2

あなたのようにPHPのzip拡張子を使用することができます。

foreach(glob('*.zip') as $zipFile) { 

     $zip = new ZipArchive; 

     if ($zip->open($zipFile) === TRUE) { 

       // get the filename without extension. 
       $filename = pathinfo($zipFile,PATHINFO_FILENAME); 

       // extract. 
       $zip->extractTo($filename); 
       $zip->close(); 
       echo "Extracted contents of $zipFile to $filename","\n"; 
     } else { 
       echo "Failed to open $zipFile","\n"; 
     } 
} 
+1

アーカイブ全体を抽出する理由は何ですか? –

1

あなたはP HP5's ZipArchive functions?

を見てとっています
// you could extract the txt-file only and read in the content afterwards 
$value = 'myzipfile.zip'; 
$entry = $zip->getNameIndex('foo.txt'); 
       copy('zip://'.dirname(__FILE__).'/zip_files/'.$value.'#'.$entry, 'txt_files/'.$value.'.txt'); 
} 
$zip->close(); 

// now you can access the file and do with the content what everyou like 

有用なSO question: https://stackoverflow.com/questions/4085333/modifying-a-single-text-file-in-a-zip-file-in-php

関連する問題