私は、一連の圧縮ファイルを含むディレクトリを持っています。 これらのファイルのそれぞれにfoo.txtファイルがあります。PHPはzipファイルのディレクトリからテキストファイルを読み込みます
どのように各zipからこのテキストファイルを読むことができますか?
私が知っているglob
は、あなたはZIPアーカイブで作業することができます
私は、一連の圧縮ファイルを含むディレクトリを持っています。 これらのファイルのそれぞれにfoo.txtファイルがあります。PHPはzipファイルのディレクトリからテキストファイルを読み込みます
どのように各zipからこのテキストファイルを読むことができますか?
私が知っているglob
は、あなたはZIPアーカイブで作業することができます
PHPはan extensionを持つディレクトリからすべてのファイルを表示するために使用されます。
その1つのファイルにアクセスするには、アーカイブ全体を解凍する必要はありません。 ZipArchive::extractToメソッドを使用すると、抽出する内容を指定できます。
$zip = new ZipArchive;
$res = $zip->open('test.zip');
$zip->extractTo('my/extract/folder/', 'foo.txt');
私の知る限り、圧縮データにはこのようにアクセスすることはできません。最初に解凍する必要があります。
あなたがが快適であれば、あなたはこのPHP拡張モジュールを使用することができます。http://www.php.net/manual/en/book.zip.php
あなたのように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";
}
}
アーカイブ全体を抽出する理由は何ですか? –
あなたは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
それを解凍します。しかし、アーカイブ全体ではありません。必要なファイルのみを解凍することができます。 –