php 의 opendir 수정날짜별 sort 를 하고 싶은데 어떻게 해야 하나요
본문
function get_file_list($path,$arr=array()){
}
while($file=readdir($dir)){
if($file=='.'||$file=='..'){
continue;
}else if(is_dir($path.'/'.$file)){
continue;
}else{
$arr[]=$file;
}
}
closedir($dir);
sort($arr);
return $arr;
}
ftp 또는 멀티업로드로 파일명 변경 없이 그냥 업로드후
폴더체 파일을 읽습니다.
위와같은 함수로 하면 파일명 순으로 정열 되는데
수정날짜별 정열은 불가 한가요?
파일업로드 시간 최신것을 가장먼저 나오게 하고 싶습니다.
date('Y-m-d H:i:s', filemtime($file)) 이렇게 적용해봤더니
모두 1970-01-01 09:00:00 로만 출력되네요.
ftp에서 보이는 수정날짜를 얻을려면 어떻게 해야 할까요?
답변 1
흠 수정 날짜로의 정렬은 한번 더 조건이 필요할 듯
<?php
$files = array();
if ($handle = opendir('.'))
{
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..") // 폴더 . 과 .. 을 제외한 파일과 폴더
$files[filemtime($file)] = $file; //파일 정렬을 위해 파일명(폴더명)[파일(폴더) 업로드시간]의 형태로 파일을 재정의
}
closedir($handle); //기본폴더 닫기
//ksort는 변수[숫자] 에서 [] 안에 숫자에 대한 내림차순 정렬
//krsort는 변수[숫자] 에서 [] 안에 숫자에 대한 오름차순 정렬
krsort($files);
foreach($files as $file)
{
//정렬이 잘 되었는지 확인 또는 이곳에서 마무리
echo(date('Y-m-d H:i:s',filemtime($file)). " ===> ".$file."<br/>");
}
}
?>
!-->
답변을 작성하시기 전에 로그인 해주세요.