如何检查zip文件是不是包含所有图像文件而不在服务器上解压缩
Posted
技术标签:
【中文标题】如何检查zip文件是不是包含所有图像文件而不在服务器上解压缩【英文标题】:How to check if zip file contains all images file without unzipping on server如何检查zip文件是否包含所有图像文件而不在服务器上解压缩 【发布时间】:2017-03-07 20:02:13 【问题描述】:我想检查 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】:<?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 />";
?>
【讨论】:
如何检查 jpeg 和 png 两种图像类型? 查找,我编辑我的答案,如果 elseif 则我会继续处理 这就是最好的! 我在答案的第二个版本中添加了数组,该数组是由 for 循环创建的,并且该数组超出了 for 循环。现在你有一个循环外的数组,可以根据你将来的需要进行操作。以上是关于如何检查zip文件是不是包含所有图像文件而不在服务器上解压缩的主要内容,如果未能解决你的问题,请参考以下文章
检查路径在 Python 中是不是有效,而不在路径的目标处创建文件
在 python 中使用 zip() 时如何确保所有文件都已成功压缩,是不是有任何功能可以检查或确认?
检查appdata中是不是存在文件而不在python代码中添加完整路径