使用php在文件夹中移动图片路径/名称数组

时间:2017-03-08 14:55:39

标签: php

我有一个名为images的文件夹(在服务器端),并且会有添加的图片,不断地,我想要一个功能,将所有图片从该文件夹(图像)移动到另一个文件夹(用实际数量调用)月份)在images文件夹中。所以我基本上会有一个包含其他文件夹的文件夹图像,每个文件夹都有月号,所以今天就说文件夹03(三月)。

这是迄今为止的功能:

public function createCurrentMonthFolder() {
        $month = date("m");
        $directory = "./images/".$month;
        if(!is_dir($directory)){
            mkdir($directory, 775, true);
            }
        $source= "./images";
        $images = glob('./images/*.{jpg,gif,png}', GLOB_BRACE);
        $dest = "./images/".$month;
        var_dump($images);
        copy($source, $dest);
        unlink($source);
    }

因此,第一部分将检查当前月份的文件夹是否已经存在(如果没有创建)。在$ images变量中,我将得到像这样的图像名称数组:

array(2) { [0]=> string(19) "./images/14.jpg" [1]=> string(17) "./images/ji.jpg" }

我想移动$ dest中的所有图像,这实际上是当前月份文件夹名称。

问题是copy()只接受一个文件而不是我发送的数组,而unlink()也希望得到一个文件而不是一个dir。

那么如何将图片数组移动到我想要的文件夹中并从images文件夹中删除它们?谢谢!

2 个答案:

答案 0 :(得分:0)

你可以创建一个循环访问数组,

foreach($images as $image){
 copy($image, $dest);
 unlink($image);
}

答案 1 :(得分:0)

这可能会对你有所帮助:


    $all_files = scandir('/home/user/Desktop/images');

    $source = '/home/user/Desktop/images/' ;
    $destination = '/home/user/Desktop/images/03/';

    foreach($all_files as $files){
        if(is_file($source.$files)){
            rename($source.$files,$destination.$files);
        }
    }