如何仅提取图像文件并删除文件的其余部分
问题描述:
我试图提取我的服务器上的zip文件,有时这些文件包含MAC_STORE和其他格式,用户不应放入zip文件。如何仅提取图像文件并删除文件的其余部分
这里是我试过
public static function extractItem($path, $ext_path) {
$zip = new ZipArchive;
$zip->open($path);
$filename = array();
for ($i = 0; $i < $zip->numFiles; $i++) {
$stat = $zip->statIndex($i);
if ($stat['size'] != 0) {
$filename[] = basename($stat['name']);
}
}
}
如果zip文件包含JPG格式,JPEG,PNG那么也没关系,如果它包含其他格式我要删除它们
这里是的$filename array
Array
(
[0] => Screen Shot 2017-10-04 at 12.38.47 AM.png
[1] => ._Screen Shot 2017-10-04 at 12.38.47 AM.png
[2] => Screen Shot 2017-10-04 at 12.38.50 AM.png
[3] => ._Screen Shot 2017-10-04 at 12.38.50 AM.png
)
响应在zip文件中只有两个图像
答
你可以仅仅只提取文件与.jpg格式,JPEG,PNG延伸,在这里解释: php zipArchive unzip only certain extensions
但是,你会用这个代替替换正则表达式取景器:
preg_match('#.+([jpg|jpeg|png])$#i', $entry)
+0
我的zip文件中有两个文件,循环运行四次? – user8740586
什么' PHP_EOL'在那里做?文件名不是文本文件...你在哪里检查代码中的文件扩展名? – arkascha