Вопрос:

Как проверить, содержит ли zip-файл все файлы изображений без разархивирования на сервере

php zip unzip zipfile

376 просмотра

1 ответ

433 Репутация автора

Я хочу проверить, являются ли все файлы в 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 для изображений, если изображение не найдено, чем просто повторить ошибку

Автор: Aniket Singh Источник Размещён: 07.03.2017 08:02

Ответы (1)


1 плюс

513 Репутация автора

Решение
<?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>";
}
?>

Я добавлю массив $ ext из цикла FOR, возьму цикл ouside и вы можете манипулировать этим массивом, в зависимости от того, что вы будете делать.

<?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 />";

}

?>
Автор: b2ok Размещён: 07.03.2017 08:38
Вопросы из категории :
32x32