我有一个脚本,可以从目录中检索文件,需要按日期对文件进行排序。最新照片上传到列表的顶部。请告知任何人?
<?
$slozka = "./gallery/holiday/"; //select the folder from which you want to list files
$thumb= "thumb"; //the name of the folder thumbnails
$vypis = opendir($slozka); //open folder
$celkem = '0'; //beginning number of photos
while (false!==($file = readdir($vypis))) //reading files
{
if($file!="."&&$file!=".."&&!is_dir($file)&&$file!=$thumb) //search through folder
{
$celkem++; //count the number of pictures
$filetitle = $file;
$nahrada = array("_", ".jpg", ".png", ".gif");
$filetitle = str_replace($nahrada, " ", "$filetitle");
if (file_exists($slozka.$thumb.'/'.$file))
{ //If there is a preview and display it ..
echo "<li><a href="gallery/holiday/".$file."" alt="".$file.""
title="".$filetitle."" class="holiday" /><img src="gallery/holiday/thumb/".$file."" alt="".$file.""></a><span class="nazvy">".$filetitle."</span></li>";
}//If there is no way it will create ...
else
echo "<li><a href="gallery/holiday/".$file."" alt="".$file."" class="holiday" /><img src="thumb.php?nazev=".$file."&cesta=".$slozka."" alt="".$file.""></a><span class="nazvy">".$filetitle."</span></li>";
}
}
echo "</ul><div id="soucet">Celkem fotek : ".$celkem."</div>"; // print the number of photos in the gallery ...
closedir($vypis); //close folder
?>
您可以使用终端命令find
函数从目录中获取最新文件。用您要检查的文件模式进行反向分类,然后循环目录。然后,您将在日期之前获取最新文件。
检查您的参考链接。
https://superuser.com/questions/294161/unix-linux-find-and-sort-sort-by-date-modified
Ex :
find . -type f -name '{$fileFormat}*'.txt -exec ls -tr {} ; | sort -r | head -10
$output = array();
@chdir($destinationDir);
@exec($command, $output);
然后循环$output
。
您应该已经搜索过。
很明显opendir()
不会检索文件修改,也没有创建日期。
简单地搜索"修改文件的最后一个PHP"将在此处重定向您:
https://www.google.com/search?q=php file modified last
第一个结果是php.net的文档:
http://php.net/filemtime
您可以在哪里使用
date ("F d Y H:i:s.", filemtime($file)
为了检索列表的DateTime时间戳。
您可以在其顶部构建数组,并通过一个数组排序函数之一(http://www.php.net/manual/manual/en/aray/array.sorting.php)
和最后但并非最不重要的 - 英语是官方编程语言,因此请摆脱此变量命名,例如$celkem
和$slozka