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