我需要帮助,如何按文件日期对下面的代码进行排序?
$dir2 = "flash/$plk/img";
$plks2 = scandir($dir2);
$plkss2 = array_diff($plks2, array('.', '..'));
foreach ($plkss2 as $plk2) {
echo '<img data-src="flash/'. str_replace('+', '%20', urlencode($plk)) .'/img/' . $plk2 . '" alt="" class="img-responsive lazyload">';
}
答案 0 :(得分:7)
这应该适合你:
(我只是使用glob()
获取目录的所有文件,然后我使用usort()
对数组进行排序,我使用filemtime()
比较最后修改和I循环每个带有foreach循环的文件)
<?php
$files = glob("flash/$plk/img/*.*");
usort($files, function($a, $b){
return filemtime($a) < filemtime($b);
});
foreach ($files as $plk2) {
echo '<img data-src="flash/' . str_replace('+', '%20', urlencode($plk)) . '/img/' . $plk2 . '" alt="" class="img-responsive lazyload">';
}
?>
答案 1 :(得分:0)
你去吧
<?php
$dir = ".";
$dh = opendir($dir);
while (false !== ($filename = readdir($dh))) {
$files[] = $filename;
}
$file_array = array();
foreach ($files as $file_name) {
$file_array[filemtime($file_name)] = $file_name;
}
ksort($file_array);
var_dump($file_array);
?>
答案 2 :(得分:0)
另一个扫描目录保存最新的 5 个文件
public function checkmaxfiles()
{
$dir = APPLICATION_PATH . '\\modules\\yourmodulename\\public\\backup\\'; // '../notes/';
$ignored = array('.', '..', '.svn', '.htaccess');
$files = array();
foreach (scandir($dir) as $file) {
if (in_array($file, $ignored)) continue;
$files[$file] = filemtime($dir . '/' . $file);
}
arsort($files);
$files = array_keys($files);
$length = count($files);
if($length < 4 ){
return;
}
for ($i = $length; $i > 4; $i--) {
echo "Erase : " .$dir.$files[$i];
unlink($dir.$files[$i]);
}
}