Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何仅提取图像文件并删除文件的其余部分_Php_Zip_Unzip - Fatal编程技术网

Php 如何仅提取图像文件并删除文件的其余部分

Php 如何仅提取图像文件并删除文件的其余部分,php,zip,unzip,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->numFi

我试图在我的服务器上提取一个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的文件,如下所述:

但您可以用以下内容替换正则表达式查找器:

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

您只能提取扩展名为.jpg、jpeg、png的文件,如下所述:

但您可以用以下内容替换正则表达式查找器:

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

PHP\u EOL
在那里做什么?文件名不是文本文件。。。你在哪里检查代码中的文件扩展名?PHP EOL在那里做什么?文件名不是文本文件。。。您在哪里检查代码中的文件扩展名?我的zip文件中有两个文件,循环运行了四次?我的zip文件中有两个文件,循环运行了四次?