2011-07-26 2 views
2

rename()을 사용하여 원본 디렉터리에서 대상 디렉터리로 파일을 이동했습니다. 프로세스 중에 프로세스를 기록하려면 어떻게해야합니까? 나는이 안에 것 생각하고있다 : 어떤 에러가 발생했을 경우파일 이동 후 모든 로그

while(false !== ($file = readdir($handle))) { 
    if(is_file($src . '/' . $file)) { 
     rename($src . '/' . $file, $dest . '/' . $file); 
    } 
} 

로그는 단순히 각 파일의 성공적인 전송을 포함하거나 할 수 있습니다. 이름 바꾸기가 부울을 반환

답변

0

, 당신은

+0

덕분 헤드 업을 위해. – Dee

0

이 트릭을 할해야 사용할 수 있습니다

$logfilename = 'log.txt'; // Or whatever you call it 
while(false !== ($file = readdir($handle))) { 
    if(is_file($src . '/' . $file)) { 
     if(rename($src . '/' . $file, $dest . '/' . $file)){ 
      file_put_contents($logfilename, 'Successfully renamed '. 
      '"'.$src . '/' . $file.'" to "'.$dest . '/' . $file.'"'.PHP_EOL, 
       FILE_APPEND); 
     }else{ 
      file_put_contents($logfilename, 'Failed to rename'. 
      '"'.$src . '/' . $file.'" to "'.$dest . '/' . $file.'"'.PHP_EOL, 
       FILE_APPEND); 
     } 
    } 
} 
+0

감사합니다 PaulPRO, 그러나이 같은 rename() 파일의 이름을 바꾸는 데 실패한 경우 특정 오류를 보유하고 PHP에서 모든 기본 제공 함수가 있습니까? 로그에 포함시키기 때문입니다. 감사. – Dee

+0

@Dee, 불행히도 PHP lof에 'rename_error();'형식의 함수는 없다. 단지 rename()의 반환 값에서 얻은 결과가 성공했는지 실패했는지 만 알 수있다. – Paulpro

+0

빠른 학습 주셔서 감사합니다 나는 당신에게서 폴. – Dee

0
$p=fopen('php://stderr','w'); 
while(false !== ($file = readdir($handle))) { 
    if(is_file($src . '/' . $file)) { 
    if(rename($src . '/' . $file, $dest . '/' . $file)) { 
     @fputs($p, "OK - mv $src/$file $dest/$file\n"); 
    } else { 
     @fputs($p, "ERROR - - mv $src/$file $dest/$file\n"); 
    } 
    } 
} 
@fclose($p);