[php]rename

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와 같은 고유 식별자를 활용할 수 있습니다.