stat
함수
stat
함수는 PHP에서 파일에 대한 정보를 반환하는 함수입니다. 파일의 상태에 관한 다양한 정보를 배열로 반환하며, 파일 크기, 수정 시간, 소유자, 그룹 등의 정보를 얻을 수 있습니다.
사용법:
array stat ( string $filename )
$filename
: 정보를 얻고자 하는 파일의 경로입니다.
예제:
$file = 'example.txt';
$fileInfo = stat($file);
print_r($fileInfo);
stat
함수를 응용한 코드
1. 파일의 크기와 수정 시간 출력하기
$file = 'example.txt';
$fileInfo = stat($file);
if ($fileInfo) {
echo 'File size: ' . $fileInfo['size'] . ' bytes' . PHP_EOL;
echo 'Last modified: ' . date('Y-m-d H:i:s', $fileInfo['mtime']) . PHP_EOL;
} else {
echo 'Failed to get file information.';
}
stat
함수와 다른 함수 사용하여 응용하는 코드
2. 디렉토리 내 파일의 정보 출력하기
$directory = './files/';
if (is_dir($directory)) {
$files = scandir($directory);
foreach ($files as $file) {
if ($file !== '.' && $file !== '..') {
$filePath = $directory . $file;
$fileInfo = stat($filePath);
echo 'File: ' . $file . PHP_EOL;
echo 'File size: ' . $fileInfo['size'] . ' bytes' . PHP_EOL;
echo 'Last modified: ' . date('Y-m-d H:i:s', $fileInfo['mtime']) . PHP_EOL;
echo PHP_EOL;
}
}
}
stat
함수와 조건문, 반복문 사용하는 샘플 코드
3. 디렉토리 내 파일 중 가장 큰 파일 찾기
$directory = './files/';
$maxFileSize = 0;
$maxFile = '';
if (is_dir($directory)) {
$files = scandir($directory);
foreach ($files as $file) {
if ($file !== '.' && $file !== '..') {
$filePath = $directory . $file;
$fileInfo = stat($filePath);
if ($fileInfo['size'] > $maxFileSize) {
$maxFileSize = $fileInfo['size'];
$maxFile = $file;
}
}
}
}
if ($maxFile) {
echo 'The largest file is: ' . $maxFile . PHP_EOL;
echo 'File size: ' . $maxFileSize . ' bytes';
} else {
echo 'No files found in the directory.';
}
성능 향상을 위한 팁
stat
함수는 파일 정보를 얻기 위해 파일 시스템에 I/O 작업을 수행합니다. 파일 정보를 반복적으로 얻어와야 할 때는 가능한한 불필요한 호출을 줄이고, 캐싱 등의 기법을 활용하여 성능을 개선할 수 있습니다.- 대량의 파일 정보를 처리해야 할 때는 적절한 방법을 선택하여 효율적으로 처리해야 합니다. 예를 들어 병렬 처리, 배치 작업, 쿼리 최적화 등의 방법을 고려할 수 있습니다.