如何检查zip文件是否包含所有图像文件而不在服务器上解压缩

时间:2017-03-07 20:02:13

标签: php zip unzip zipfile

我想检查zip中的所有文件是否都是图像,到目前为止我已经提出了这个解决方案

$zip = new ZipArchive;
$res = $zip->open('CQN.zip');

if ($res) {

    $legitImage=explode('.',$zip->statIndex(0)['name']);
    if($legitImage[1] !='jpg')
    {
        // just stop processing
    }
}

我只想在zip中为图像循环每个文件,如果找不到图像而不仅仅是回显错误

1 个答案:

答案 0 :(得分:1)

<?php
$za = new ZipArchive(); 

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

for( $i = 0; $i < $za->numFiles; $i++ ){ 
    $stat = $za->statIndex( $i ); 

     $ext = pathinfo(( basename( $stat['name'] ) . PHP_EOL ), PATHINFO_EXTENSION);

     echo $ext;
     echo "<br>";
}
?>

这是我从FOR循环中添加$ ext的数组,采用数组的循环,你可以根据你不习惯的方式操作该数组。

<?php
$array = array();


$za = new ZipArchive(); 

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

for( $i = 0; $i < $za->numFiles; $i++ ){ 

   $stat = $za->statIndex( $i ); 

     $ext = pathinfo(( basename( $stat['name'] ) . PHP_EOL ), PATHINFO_EXTENSION);

     $array[] = $ext;

}
print "For: ".count($array)."<br />";

print_r($array);

foreach ($array as $value) {
    echo $value . "<br />";

}

?>