[php]touch

touch 함수

touch 함수는 PHP에서 파일의 수정 시간(타임스탬프)을 변경하거나 존재하지 않는 파일을 생성하는 함수입니다. 파일이 이미 존재하는 경우 수정 시간이 변경되며, 파일이 존재하지 않는 경우 새로운 파일이 생성됩니다.

사용법:

bool touch ( string $filename [, int $time = time() [, int $atime ]] )
  • $filename: 수정 시간을 변경하거나 생성할 파일의 경로입니다.
  • $time: 파일의 수정 시간을 지정할 타임스탬프입니다. 기본값은 현재 시간(time())입니다.
  • $atime: 파일의 접근 시간(타임스탬프)을 지정할 타임스탬프입니다. 기본값은 $time과 동일하게 설정됩니다.

예제:

$file = 'example.txt';

// 파일이 존재하지 않으면 생성, 존재하면 수정 시간 변경
if (touch($file)) {
    echo 'File modification time has been updated.';
} else {
    echo 'Failed to update the file modification time.';
}

touch 함수를 응용한 코드

1. 여러 파일의 수정 시간을 변경하기

$files = ['file1.txt', 'file2.txt', 'file3.txt'];

foreach ($files as $file) {
    touch($file, strtotime('2023-07-21 12:34:56'));
    echo 'File modification time updated for ' . $file . PHP_EOL;
}

touch 함수와 다른 함수 사용하여 응용하는 코드

2. 파일의 수정 시간과 접근 시간을 동시에 변경하기

$file = 'example.txt';

// 파일의 수정 시간과 접근 시간을 지정한 타임스탬프로 변경
$timestamp = strtotime('2023-07-21 12:34:56');
if (touch($file, $timestamp, $timestamp)) {
    echo 'File modification and access time has been updated.';
} else {
    echo 'Failed to update the file modification and access time.';
}

touch 함수와 조건문, 반복문 사용하는 샘플 코드

3. 디렉토리 내 파일의 수정 시간 변경하기

$directory = './files/';

if (is_dir($directory)) {
    $files = scandir($directory);
    foreach ($files as $file) {
        if ($file !== '.' && $file !== '..') {
            touch($directory . $file, strtotime('2023-07-21 12:34:56'));
            echo 'File modification time updated for ' . $file . PHP_EOL;
        }
    }
} else {
    echo 'The directory does not exist.';
}

성능 향상을 위한 팁

  • touch 함수는 파일의 수정 시간과 접근 시간을 변경하는데 사용되기 때문에, 파일을 수정하거나 접근할 때만 호출하는 것이 좋습니다. 불필요한 호출을 피해 성능을 개선할 수 있습니다.
  • 대량의 파일의 수정 시간을 변경해야 할 경우, 병렬 처리 방법을 사용하여 작업을 분산시키면 처리 시간을 단축시킬 수 있습니다.

게시됨

카테고리

,

작성자