이전 목록 다음
채택완료

php 의 opendir 수정날짜별 sort 를 하고 싶은데 어떻게 해야 하나요

2015-02-21 (토) 18:04:19 12,447

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개

채택된 답변
+20 포인트
2015-02-23 (월) 15:37:01

흠 수정 날짜로의 정렬은 한번 더 조건이 필요할 듯

Copy
<?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/>");    }}?>

답변을 작성하려면 로그인이 필요합니다.