在PHP中,是否可以在不先提取其内容的情况下检查Zip文件的内容?

2022-08-30 12:39:34

我在PHP中看到了ZipArchive类,它允许您读取zip文件。但是我想知道是否有一种方法可以在不先提取文件的情况下迭代其内容


答案 1

正如对 http://www.php.net/ziparchive 的评论所示:

以下代码可用于获取 zip 文件中所有文件名的列表。

<?php
$za = new ZipArchive(); 

$za->open('theZip.zip'); 

for( $i = 0; $i < $za->numFiles; $i++ ){ 
    $stat = $za->statIndex( $i ); 
    print_r( basename( $stat['name'] ) . PHP_EOL ); 
}
?>

答案 2

http://www.php.net/manual/en/function.zip-entry-read.php

<?php
$zip = zip_open("test.zip");

if (is_resource($zip))
  {
  while ($zip_entry = zip_read($zip))
    {
    echo "<p>";
    echo "Name: " . zip_entry_name($zip_entry) . "<br />";

    if (zip_entry_open($zip, $zip_entry))
      {
      echo "File Contents:<br/>";
      $contents = zip_entry_read($zip_entry);
      echo "$contents<br />";
      zip_entry_close($zip_entry);
      }
    echo "</p>";
  }

zip_close($zip);
}
?>

推荐