Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.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 - Fatal编程技术网

使用PHP脚本将所有文件从一个文件夹复制到另一个文件夹?

使用PHP脚本将所有文件从一个文件夹复制到另一个文件夹?,php,Php,基本上,我的要求是,我希望使用PHP脚本将所有文件从一个文件夹移动到另一个文件夹。任何人都可以帮助我。我正在尝试这个,但我得到了错误 $mydir = dirname( __FILE__ )."/html/images/"; if(!is_dir($mydir)){ mkdir("html/images"); } // Move all images files $files = glob("images/*."); foreach($files

基本上,我的要求是,我希望使用PHP脚本将所有文件从一个文件夹移动到另一个文件夹。任何人都可以帮助我。我正在尝试这个,但我得到了错误

 $mydir = dirname( __FILE__ )."/html/images/";
   if(!is_dir($mydir)){
       mkdir("html/images");
   } 
   // Move all images files
   $files = glob("images/*.");
   foreach($files as $file){
   $file_to_go = str_replace("images/","html/images/",$file);
       copy($file, $file_to_go);
   }

这应该很好:

// Get array of all source files
$files = scandir("source");
// Identify directories
$source = "source/";
$destination = "destination/";
// Cycle through all source files
foreach ($files as $file) {
  if (in_array($file, array(".",".."))) continue;
  // If we copied this successfully, mark it for deletion
  if (copy($source.$file, $destination.$file))
  {
      $delete[] = $source.$file;
  }
}
// Delete all successfully-copied files
foreach ($delete as $file)
{
    unlink($file);
}
或者使用rename()和一些错误检查:

$srcDir = 'dir1';
$destDir = 'dir2';

if (file_exists($destDir)){
  if (is_dir($destDir)) {
    if (is_writable($destDir)) {
      if ($handle = opendir($srcDir)) {
        while (false !== ($file = readdir($handle))) {
          if (is_file($srcDir . '/' . $file)) {
            rename($srcDir . '/' . $file, $destDir . '/' . $file);
          }
        }
        closedir($handle);
      } else {
        echo "$srcDir could not be opened.\n";
      }
    } else {
      echo "$destDir is not writable!\n";
    }
  } else {
    echo "$destDir is not a directory!\n";
  }
} else {
  echo "$destDir does not exist\n";
} 
试试这个:

<?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 
    function copy_directory($source,$destination) { 
        $directory = opendir($source); 
        @mkdir($destination); 
        while(false !== ( $file = readdir($directory)) ) { 
            if (( $file != '.' ) && ( $file != '..' )) { 
                if ( is_dir($source . '/' . $file) ) { 
                    copy_directory($source . '/' . $file,$destination . '/' . $file); 
                } 
                else { 
                    copy($source . '/' . $file,$destination . '/' . $file); 
                } 
            } 
        } 
        closedir($directory); 
    } 
?>

参考:

使用数组映射:

// images folder creation using php
function copyFile($file) {
   $file_to_go = str_replace("images/","html/images/",$file);
   copy($file, $file_to_go);
}
$mydir = dirname( __FILE__ )."/html/images";
if(!is_dir($mydir)){
  mkdir("html/images");
}

// Move all images files
$files = glob("images/*.*");
print_r(array_map("copyFile",$files));

这个适合我……。
多亏了这个人


我遇到过一个类似的情况,我需要从一个域复制到另一个域,我通过对上面“code Culler”给出的“非常简单的答案”进行微调来解决这个问题: 这正是我的工作原理,您也可以根据自己的情况进行调整:

foreach(glob('../folder/*.php') as $file) {
$adjust = substr($file,3);
copy($file, '/home/user/abcde.com/'.$adjust);
注意使用了“substr()”,如果没有它,目标将变成“/home/user/abcde.com/。/folder/”,这可能是您不想要的。
因此,我使用substr()删除前3个字符(../),以获得所需的目标,即“/home/user/abcde.com/folder/”。因此,您可以调整substr()函数和glob()函数,直到它满足您的个人需要。希望这能有所帮助。

谢谢我得到问题的答案要移动文件,请使用rename()代替copy()
// images folder creation using php
function copyFile($file) {
   $file_to_go = str_replace("images/","html/images/",$file);
   copy($file, $file_to_go);
}
$mydir = dirname( __FILE__ )."/html/images";
if(!is_dir($mydir)){
  mkdir("html/images");
}

// Move all images files
$files = glob("images/*.*");
print_r(array_map("copyFile",$files));
 <?php
    copydir("admin","filescreate");
    echo "done";

    function copydir($source,$destination)
    {
    if(!is_dir($destination)){
    $oldumask = umask(0); 
    mkdir($destination, 01777); // so you get the sticky bit set 
    umask($oldumask);
    }
    $dir_handle = @opendir($source) or die("Unable to open");
    while ($file = readdir($dir_handle)) 
    {
    if($file!="." && $file!=".." && !is_dir("$source/$file"))
    copy("$source/$file","$destination/$file");
    }
    closedir($dir_handle);
    }
    ?>
foreach(glob('../folder/*.php') as $file) {
$adjust = substr($file,3);
copy($file, '/home/user/abcde.com/'.$adjust);