sovka
Новичок
Рекурсивная функция
Приветы!
Нужна функция, которая рекурсивно обходит директорию со всеми вложенными путями и возвращает N - файлов с самой свежей датой создания.
Вроде как сделал, но она почему то возвращает результат первой итерации, не знамо в чем глюк, пол дня просидел
Вот оно:
Может кто возьмется написать, wmz есть.
Приветы!
Нужна функция, которая рекурсивно обходит директорию со всеми вложенными путями и возвращает N - файлов с самой свежей датой создания.
Вроде как сделал, но она почему то возвращает результат первой итерации, не знамо в чем глюк, пол дня просидел

Вот оно:
PHP:
function CatList($max, $dir, $turl, $list) {
$path = strtok($path,"/")."/";
$handle = opendir ($dir);
if ($list =="") {$i = 0;} else {$i = sizeof($list);}
while (false !== ($file = readdir($handle))) {
if ( $file != '.' && $file != '..' && $file !='index.php' && $file !='feedback.php' && is_file($dir.$file) ) {
$list[$i][0] = date ("d.m.Y H:i:s", filemtime($dir.$file));
$list[$i][1] = str_replace($path,"",$dir.$file);
$i++; echo sizeof($list)."\r\n";
}
if ($file != '.' && $file != '..' && is_dir($dir.$file)) {
echo $file;
CatList($max, $dir.$file."/", $turl, $list);
}
}
echo "\r\n-".sizeof($list)."-\r\n";
If ($max == 0 || $max > sizeof($list)) {
$max = sizeof($list);
}
rsort ($list);
reset ($list);
for ($j = 0; $j < $max; $j++) {
include($path.$list[$j][1]);
$p_url = $turl."/".str_replace(".php", "", $list[$j][1]).".html";
$catlist = $catlist."\r\n<p><a href=".$p_url.">".$postname."</a> <span class=date>".$list[$j][0]."</span><br>\r\n".$description."</p>\r\n";
}
return $catlist;
}
))))