我希望使用共轭函数来查找以:
开头的最新文件$path = "/home/www/images/xml_cache";
$nom="images_album_6*.xml";
foreach (glob($path.'/'.$nom.'') as $filename) { }
和
$latest_ctime = 0;
$latest_filename = '';
$d = dir($path);
while (false !== ($entry = $d->read( ))) {
$filepath = "{$path}/{$entry}";
// could do also other checks than just checking whether the entry is a file
if (is_file($filepath) && filectime($filepath) > $latest_ctime) {
$latest_ctime = filectime($filepath);
$latest_filename = $entry;
}
}
}
但是怎么样?
提前谢谢
答案 0 :(得分:1)
假设您有PHP5
,您可以将RecursiveIterator类与getMTime函数结合使用:
$path = "/home/www/images/xml_cache";
$pattern = "/^images_album_6\S+.xml/i";
$latest_time = 0;
$latest_filename = '';
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::CHILD_FIRST);
foreach ($iterator as $file) {
if ($file->isFile() && preg_match($pattern,$file->getFilename())) {
if ($file->getMTime() > $latest_time) {
$latest_time = $file->getMTime();
$latest_filename = $file->getPathname();
}
}
}
print("Latest file: ".$latest_filename.PHP_EOL);
这将递归检查您指定的路径并打印与您的文件名模式匹配的最新文件的完整路径。