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

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

QA

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

 

답변을 작성하시기 전에 로그인 해주세요.
전체 13
QA 내용 검색
filter #sort ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT