2012-11-15 6 views
4

나는 이것을 위해 아침 내내 탐색 해왔다.PHP가 중복 된 폴더

내 서버의 폴더를 복제하는 간단한 PHP 함수가 있습니까? 필요에 따라 임시적으로 사용 권한을 변경 하시겠습니까? 근본적으로 PHP를 사용하여 FTP를 사용하여 전체 폴더를 복사 한 다음 다시 백업 할 수 있습니까?

온라인에서 찾은 기능을 사용해 보았지만 사용 권한으로 인해 생각한 바가 없습니다. error_reporting(E_ALL);으로 시도한 결과 각각 copy()의 반환 값을 확인한 경우 모두 false를 반환합니다.

copy_directory('/directory1','/directory2') 

function copy_directory($src,$dst) { 
    $dir = opendir($src); 
    @mkdir($dst); 
    while(false !== ($file = readdir($dir))) { 
     if (($file != '.') && ($file != '..')) { 
      if (is_dir($src . '/' . $file)) { 
       copy_directory($src . '/' . $file,$dst . '/' . $file); 
      } 
      else { 
       copy($src . '/' . $file,$dst . '/' . $file); 
      } 
     } 
    } 
    closedir($dir); 
} 
+1

"아마도 허가". 'error_reporting (E_ALL);을 추가하고 다시 실행하여 문제의 원인을 확인하십시오. 블라인드 추측은 종종 공학에서 상당히 잘못된 접근법입니다. –

+0

또한'@'을 제거하고 폴더가 있는지 확인합니다. –

+0

@ WebnetMobile.com 나는 각각의'copy()'실행의 반환 값을 검사했기 때문에 '나는 생각한다'라고 말하는 이유는'error_reporting (E_ALL);'을 시도한 것이고 모두 false가 반환되고 추가 정보가 제공되지 않기 때문입니다 . – bbeckford

답변

6

현상금을 게시 한 후 사용 권한이 문제라는 내 믿음을 확인한 서버 지원 티켓에 대한 회신을 받았습니다.

PHP 복사 권한을 부여하기 위해 서버 측에서 간단한 변경이 문제를 해결했습니다.

+3

현상금 ... 쓰레기의 쓰레기. 당신의 질문에 +1이 당신을 위로합니다. – Tivie

+0

하하하, 고마워.;) – bbeckford

1

코드의 중복을 확인하는 것은 어떨까요?

<?php 
if(!file_exists($dst)) { 
    mkdir($dst); 
} 
else { 
    $i = 1; 
    $duplicate_folder = true; 
    while ($duplicate_folder == true) { 
     if(file_exist($dst) { 
      $new_dst = $dst."_".$i; 
      mkdir($new_dst); 
      $i++; 
     } 
     else { 
      $duplicate_folder = false; 
     } 
    } 
} 
?>