2013-04-17 11 views
5

Sul server FTP sono presenti alcuni file. Per qualsiasi ora su questo server sta caricando nuovi file. Mi piacerebbe scaricare l'ultimo file. Come posso ottenere l'ultimo file caricato da questo server? Tutti i file hanno nomi diversi.Come posso scaricare il file più recente su FTP con PHP?

Ho utilizzato lo script di folowing per scaricare un file.

Grazie in anticipo !!!

+0

provato nulla? Spiega passo passo ciò che pensi sia la soluzione (come 1. Ottieni l'elenco dei file, 2. Trova il file più recente) e mostra dove sei bloccato. – CodeCaster

+0

Lavoro sempre con una cartella 'proceed', lì sposto i file che ho scaricato con ftp. Questo ti impedisce di controllare i timestamp –

risposta

-1
ftp_rawlist($conn); 

estrarre il nome file più recente e ottenerlo.

7

Non esiste alcun modo per verificare quale sia il file più recente, poiché non esiste un attributo "tempo caricato". Non hai parlato molto del server FTP, ma se hai un certo livello di gestione sui caricamenti, puoi assicurarti che l'ultima volta modificata sia impostata sul caricamento. Che questo finisca per funzionare dipende dal tuo server FTP e forse dai client.

Supponendo i tempi modificati sono equivalenti a caricare i tempi, si potrebbe fare qualcosa di simile:

// connect 
$conn = ftp_connect('ftp.addr.com'); 
ftp_login($conn, 'user', 'pass'); 

// get list of files on given path 
$files = ftp_nlist($conn, ''); 

$mostRecent = array(
    'time' => 0, 
    'file' => null 
); 

foreach ($files as $file) { 
    // get the last modified time for the file 
    $time = ftp_mdtm($conn, $file); 

    if ($time > $mostRecent['time']) { 
     // this file is the most recent so far 
     $mostRecent['time'] = $time; 
     $mostRecent['file'] = $file; 
    } 
} 

ftp_get($conn, "target.txt", $mostRecent['file'], FTP_ASCII); 
ftp_close($conn); 
+0

Molto utile, grazie. – joshuarh

Problemi correlati