php
PHP - 파일 이동, 복사 함수
bool copy ( string $source , string $dest [, resource $context ] )
(PHP 4, PHP 5)
php에서는 copy함수를 이용하여 간단하게 파일을 복사하거나 unlink(또는 delete)함수를 이용해 파일을 삭제할 수 있습니다.
이 두 함수는 복사, 삭제에 성공할 경우 true를, 실패하면 오류 코드 메시지를 표시하므로 함수 앞에 @를 붙여 보안 유효성을 높여 주도록 합니다.
대상 파일이 이미 존재하면 덮어 쓴다는 점에 주의가 필요합니다. 다음은 파일 복사 예제입니다.
다음은 파일 이동 예제입니다.
bool rename ( string $oldname , string $newname [, resource $context ] )
(PHP 4, PHP 5)
단순히 파일이름만 변경할 경우 rename함수를 이용합니다. 이 함수는 파일(또는 폴더)의 이름을 변경합니다. 성공하면 true를, 실패하면 false를 반환합니다.
copy, unlink 함수를 이용하지 않고, fopen 함수로 표현이 가능합니다. 다음이 그 좋은 예입니다.
(PHP 4, PHP 5)
php에서는 copy함수를 이용하여 간단하게 파일을 복사하거나 unlink(또는 delete)함수를 이용해 파일을 삭제할 수 있습니다.
이 두 함수는 복사, 삭제에 성공할 경우 true를, 실패하면 오류 코드 메시지를 표시하므로 함수 앞에 @를 붙여 보안 유효성을 높여 주도록 합니다.
copy(원본 파일명, 복사 파일명);
unlink(삭제 파일명);
대상 파일이 이미 존재하면 덮어 쓴다는 점에 주의가 필요합니다. 다음은 파일 복사 예제입니다.
<?php
// test.php파일을 복사본 test.php.bak로 만듭니다.
$oldfile = 'test.php'; // 원본파일
$newfile = 'test.php.bak'; // 복사파일
// 실제 존재하는 파일인지 체크...
if(file_exists($oldfile)) {
if(!copy($oldfile, $newfile)) {
echo "파일 복사 실패";
} else if(file_exists($newfile)) {
echo "파일 복사 성공";
}
}
?>
다음은 파일 이동 예제입니다.
<?php
// test.php파일을 test.txt로 만듭니다.
$oldfile = 'test.php'; // 원본파일
$newfile = 'test.txt'; // 복사파일
// 실제 존재하는 파일인지 체크...
if(file_exists($oldfile)) {
if(!copy($oldfile, $newfile)) {
echo "파일 복사에 실패하였습니다.";
} else if(file_exists($newfile)) {
// 복사에 성공하면 원본 파일을 삭제합니다.
if(!@unlink($oldfile)){
if(@unlink($newfile)){
echo "파일이동에 실패하였습니다.";
}
}
}
}
?>
bool rename ( string $oldname , string $newname [, resource $context ] )
(PHP 4, PHP 5)
단순히 파일이름만 변경할 경우 rename함수를 이용합니다. 이 함수는 파일(또는 폴더)의 이름을 변경합니다. 성공하면 true를, 실패하면 false를 반환합니다.
<?php
// dir1 폴더를 dir2폴더로 이름을 변경합니다.
if(rename("dir1","dir2")){
echo "이름 변경 성공";
}
// file1.php을 file2.php로 이름을 변경합니다.
if(rename("file1.php","file2.php")){
echo "이름 변경 성공";
}
?>
copy, unlink 함수를 이용하지 않고, fopen 함수로 표현이 가능합니다. 다음이 그 좋은 예입니다.
<?php
// test.php파일을 복사본 test.php.bak로 만듭니다.
$oldfile = 'test.php'; // 원본파일
$newfile = 'test.php.bak'; // 복사파일
if(file_exists($oldfile)) {
$data = file_get_contents($oldfile);
$fp = fopen($newfile, 'w+');
if(is_resource($fp)){
fputs($fp, $data);
}
fclose($fp);
}
?>
<?php
// test.php파일을 복사본 test.php.bak로 만듭니다.
$oldfile = 'test.php'; // 원본파일
$newfile = 'test.php.bak'; // 복사파일
if(file_exists($oldfile)) {
$fold = fopen($oldfile,'r');
if(is_resource($fold)){
$fnew = fopen($newfile,'w+');
$len = stream_copy_to_stream($fold,$fnew);
fclose($fold);
fclose($fnew);
}
}
?>
0 댓글