如何仅提取图像文件并删除其余文件

时间:2017-10-08 11:00:39

标签: php zip unzip

我正在尝试在我的服务器上提取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文件中只有两个图像

1 个答案:

答案 0 :(得分:0)

你只能提取带有.jpg,jpeg,png扩展名的文件,这里解释如下: php zipArchive unzip only certain extensions

但是你要用这个替换正则表达式:

preg_match('#.+([jpg|jpeg|png])$#i', $entry)