2011-10-07 4 views
2

file_ (임의 번호) .css로 시작하는 그 디렉토리 아래에있는 파일 수에서 최신 업데이트 된 파일을 가져와야합니까? 파일 존재의 수는 다음과 같이 있습니다 :PHP에서 가장 최근에 업데이트 된 파일 얻기

file_12.css 
file_34.css 
file_14.css 

내가 가장 최근에 업데이트 된 파일을 얻을합니다. 거기에 PHP에서 그런 파일을 검색 할 수있는 모든 readymade 함수가 있습니까?

+4

을 예,이 올바른 방향으로 날 이끌어 http://php.net/filemtime –

답변

2

filemtimereaddir의 조합을 사용하여 수정 된 시간을 키로하고 파일 이름을 값으로 사용하여 파일의 이름과 마지막 업데이트 시간을 모두 읽을 수 있다고 가정하면 정렬 기능을 사용하십시오 , 그리고 가장 큰 수정 시간으로 파일을 가져옵니다.

트릭 (테스트하지)해야 할 다음과 같은 뭔가 :

<?php 

$files = array(); 

if ($handle = opendir('/path/to/files')) { 
    while (false !== ($file = readdir($handle))) { 
     if (is_file($file)) { 
      $modified = filemtime($file); 
      $files[$modified] = $file; 
     } 
    } 
    closedir($handle); 
} 

krsort($files); 

$last_modified_file = array_shift($files); 
+0

, 유일한 문제 I 'filemtime()'을 사용했을 때'filemtime ('/ path/to/files /'.$ file)'경로 만 사용하면됩니다. –

1
function cmp($a, $b) 
{ 
if(!is_file($b) || !strpos('file_', $b)) return -1; 
$a = filemtime($a); 
$b = filemtime($b); 
return ($a == $b) ? 0 :(($a > $b) ? -1 : 1); 
} 
usort($handle = scandir('/path/to/files'), "cmp"); 
$file = $handle[0]; 
unset($handle); 
관련 문제