我的服务器上有一个 ZIP 文件。我想解压缩它,然后将完整的文件内容保存到一个变量中。
我不想将解压缩的文件保存在我的服务器或访问者的计算机上。我只需要将该压缩文件的所有内容存储在一个变量中,我可以使用它并最终显示在屏幕上。我为这个问题找到的所有其他解决方案都包括以解压缩的形式重新保存文件。
如何使用 get_file_contents 或任何其他功能来做到这一点?
例如,您可以使用 PHPs ZipArchive 简单地找出 ZIP 存档中的文件名。试试这个(没有测试过,但你应该可以让它工作):
$za = new ZipArchive();
$za->open('archive.zip');
$fileContents = array();
for( $i = 0; $i < $za->numFiles; $i++ ) {
$stat = $za->statIndex( $i );
$fp = $z->getStream($stat['name']);
if(!$fp) exit("failed\n");
$contents = '';
while (!feof($fp)) {
$contents .= fread($fp, 1000);
}
fclose($fp);
$fileContents[$stat['name']] = $contents;
}
一旦您知道 Zip 中文件的名称,您还可以使用以下内容:
$path = sprintf('zip://%s#%s', $zipArchive, $fileNameInZipArchive);
$fileData = file_get_contents($path);