2016-10-19 2 views
1

Мне было интересно, можно ли добавить временную метку создания/обновления файла при использовании ftp_nlist().PHP ftp_nlist timestamp

Мой код прямо сейчас:

function ftp_get_recursive_paths($conn, $path, $max_level = 0){ 
    $files = array(); 
    if($max_level < 0) return $files; 
    if($path !== '/' && $path[strlen($path) - 1] !== '/') $path .= '/'; 
    $files_list = ftp_nlist($conn, $path); 

    foreach($files_list as $f){ 
     if($f !== '.' && $f !== '..' && $f !== $path){ 
      if(strpos($f, '.') === FALSE){ 
       $files[$f] = ftp_get_recursive_paths($conn, $f, $max_level-1); 
      }else{ 
       $files[] = basename($f); 
      }  
     } 
    } 

    return $files; 
} 

И выход:

(
    [/folder1] => (
      [0] => file.php 
      [1] => file2.php 
     ) 

    [/folder2] => (
      [/folder2/2] => (
       ) 

     ) 

) 
+0

Что значит "добавить метку"? Вы хотите получить временные метки перечисленных файлов? –

+0

@MartinPrikryl Да, добавьте временную метку перечисленных файлов. Например: file1.php - 10-19-2016 ... –

+0

Возможный дубликат [Как получить последние измененные текстовые файлы по дате из удаленного расположения FTP] (http://stackoverflow.com/questions/29147534/how-to- get-last-modified-text-files-by-date-from-remote-ftp-location) –

ответ

1

Попробуйте с помощью следующего кода:

function ftp_get_recursive_paths($conn, $path, $max_level = 0){ 
    $files = array(); 
    if($max_level < 0) return $files; 
    if($path !== '/' && $path[strlen($path) - 1] !== '/') $path .= '/'; 
    $files_list = ftp_nlist($conn, $path); 

    foreach($files_list as $f){ 
     if($f !== '.' && $f !== '..' && $f !== $path){ 
      if(strpos($f, '.') === FALSE){ 
       $files[$f] = ftp_get_recursive_paths($conn, $f, $max_level-1); 
      }else{ 
       $mdate = ftp_mdtm($conn, $f); 
       $files[] = basename($f) . " - " . date("m-d-Y H:i:s.", $mdate); 
      }  
     } 
    } 

    return $files; 
}