PHP将所有图像文件夹从一个文件夹复制到另一个

时间:2014-07-25 15:18:06

标签: php linux

我正在制作一些代码,将所有图像放在一个文件夹中,然后将它们复制到另一个文件夹中,然后删除原始文件夹及其内容。

我有:

copy('images/old-folder/*', 'images/new-folder/');
unlink('images/old-folder/');

但这不起作用:(但它不起作用我的意思是文件不要复制并且旧文件夹不会被删除:(

我甚至尝试过:

system('cp images/old-folder/* images/new-folder/');

这也不起作用:(请帮忙。

我甚至试图更改两个文件夹的权限:

chmod('images/old-folder/', 0777);
chmod('images/new-folder/', 0777);

3 个答案:

答案 0 :(得分:2)

foreach(glob('images/old-folder/*') as $image) {
    copy($image, 'images/new-folder/' . basename($image)); unlink($image);
}
rmdir('images/old-folder');

查看文档:{​​{3}},glob,您也可能会发现有关rmdir的用户评论很有用。

编辑:

rmdir添加到复制功能的第二个参数,该参数必须是实际路径,而不是目录。

答案 1 :(得分:0)

<?php

$src = 'pictures';
$dst = 'dest';
$files = glob("pictures/*.*");
      foreach($files as $file){
      $file_to_go = str_replace($src,$dst,$file);
      copy($file, $file_to_go);
      }

?>

在此处找到:PHP copy all files in a directory to another?

答案 2 :(得分:0)

以下是@Prasanth的修改版本,应该可以使用(未​​经测试)

<?php
    $oldfolder = 'images/new-folder';
    $newfolder = 'images/old-folder';

    $files = glob($oldfolder . '/*');

    foreach($files as $file){
        $filename = basename($file);
        copy($file,  $oldfolder . '/' . $filename);
        unlink($file);
    }
    rmdir($oldfolder);
?>