rename
함수
rename
함수는 PHP에서 파일 또는 디렉토리의 이름을 변경하는 함수입니다. 기존 파일 또는 디렉토리의 이름을 새 이름으로 바꿀 수 있습니다.
사용법:
bool rename ( string $oldname , string $newname [, resource $context ] )
$oldname
: 기존 파일 또는 디렉토리의 경로와 이름입니다.$newname
: 변경할 파일 또는 디렉토리의 새 경로와 이름입니다.$context
: 컨텍스트 옵션을 제공할 수 있습니다. 보통은 생략합니다.
예제:
$oldFile = 'oldfile.txt';
$newFile = 'newfile.txt';
if (file_exists($oldFile)) {
if (rename($oldFile, $newFile)) {
echo 'File name has been changed successfully.';
} else {
echo 'Failed to change the file name.';
}
} else {
echo 'The file does not exist.';
}
rename
함수를 응용한 코드
1. 디렉토리 이름 변경하기
$oldDir = 'olddir';
$newDir = 'newdir';
if (is_dir($oldDir)) {
if (rename($oldDir, $newDir)) {
echo 'Directory name has been changed successfully.';
} else {
echo 'Failed to change the directory name.';
}
} else {
echo 'The directory does not exist.';
}
rename
함수와 다른 함수 사용하여 응용하는 코드
2. 파일 이름 중복 방지하기
$uploadDir = 'uploads/';
$originalName = $_FILES['file']['name'];
$extension = pathinfo($originalName, PATHINFO_EXTENSION);
$newName = time() . '.' . $extension;
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadDir . $newName)) {
echo 'File has been uploaded successfully as ' . $newName;
} else {
echo 'Failed to upload the file.';
}
rename
함수와 조건문, 반복문 사용하는 샘플 코드
3. 여러 파일 이름 변경하기
$files = ['file1.txt', 'file2.txt', 'file3.txt'];
$renameSuffix = '_backup';
foreach ($files as $file) {
if (file_exists($file)) {
$newName = $file . $renameSuffix;
if (rename($file, $newName)) {
echo 'File "' . $file . '" has been renamed to "' . $newName . '".';
} else {
echo 'Failed to rename the file "' . $file . '".';
}
} else {
echo 'File "' . $file . '" does not exist.';
}
}
성능 향상을 위한 팁
rename
함수는 파일 이름 변경 작업을 수행하기 때문에 파일 시스템의 I/O 작업이 발생합니다. 대량의 파일을 처리해야 할 경우 성능에 영향을 미칠 수 있으므로 가능한한 빈번한 호출을 피해야 합니다.- 파일 이름 변경이 자주 발생하는 경우, 파일 이름을 충돌하지 않도록 고유한 이름을 생성하는 방법을 사용하는 것이 좋습니다. 시간 스탬프 또는 UUID와 같은 고유 식별자를 활용할 수 있습니다.