function findFilesWithDateRange(
$path,
$fileName = null,
$extension = null,
$startDate = null,
$endDate = null,
$fileTimeType = 'modified',
$maxSubdirectoryDepth = -1
) {
$path = is_array($path) ? $path : [$path];
$matchingFiles = [];
foreach ($path as $dir) {
if (!is_dir($dir)) {
continue;
}
$dirIterator = new RecursiveDirectoryIterator($dir);
$iterator = new RecursiveIteratorIterator($dirIterator);
if ($maxSubdirectoryDepth >= 0) {
$iterator->setMaxDepth($maxSubdirectoryDepth);
}
foreach ($iterator as $fileInfo) {
if ($fileInfo->isFile()) {
$filePath = $fileInfo->getPathname();
$fileTime = ($fileTimeType == 'created') ? filectime($filePath) : filemtime($filePath);
if (
(is_null($fileName) || fnmatch($fileName, $fileInfo->getFilename())) &&
(is_null($extension) || pathinfo($fileInfo->getFilename(), PATHINFO_EXTENSION) == $extension) &&
(is_null($startDate) || $fileTime >= strtotime($startDate)) &&
(is_null($endDate) || $fileTime <= strtotime($endDate))
) {
$matchingFiles[] = $filePath;
}
}
}
}
if (count($matchingFiles) > 0) {
return $matchingFiles;
} else {
return false;
}
}
파일을 검색하는 함수이다.
경로, 파일명, 확장자, 생성/수정일, 깊이등을 설정 가능하다.
파일이 없을 경우 false를 리턴한다.