我有一个名为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文件夹中删除它们?谢谢!
答案 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); } }