테스트 사이트 - 개발 중인 베타 버전입니다

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

아길이 10년 전 조회 12,085

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 포인트

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

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

 

로그인 후 평가할 수 있습니다

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

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

로그인