2009-08-21 8 views

Répondre

0

Depuis PHP 5.1, vous pouvez simplement utiliser filemtime() avec un chemin de fichier ftp://... valide.

Exemple:

$user = 'peter'; 
$password = 'secret123'; 
$mtime = filemtime("ftp://$user:[email protected]/some_file.txt"); 
+0

pls donner un exemple –

3

Le format d'une sortie de la liste FTP n'a pas été normalisé pour l'analyse de l'ordinateur, donc si vous souhaitez prendre en charge tous les possibles serveurs FTP, vous devez venir avec votre propre analyseur.

Mais commençons par le plus simple: PHP supporte un FTP wrapper. Depuis PHP 5.1, vous pouvez utiliser filemtime() pour récupérer le fichier de modification d'un fichier distant en utilisant ftp://user:[email protected]/path/file comme argument.

Vous pouvez également essayer d'utiliser curl_getinfo() de l'extension PHP cURL.

Si cela ne fonctionne pas parce que votre serveur FTP est AIX, VMS, EBCDIC ou un autre type "exotique", vous pouvez analyser la liste du répertoire manuellement. Tout d'abord, si vous êtes très chanceux, le serveur FTP prend en charge la commande MLST ou MLSD. Vous pouvez les publier en utilisant ftp_raw() en PHP. La sortie est expliquée dans RFC 3659. La date peut facilement être analysée et est retournée en UTC. Si vous avez moins de chance, vous devez revenir à la commande LIST utilisée par ftp_rawlist(). Il n'y a pas de standard sur la façon dont la sortie ressemble, vous avez donc besoin d'heuristiques. FileZilla est très bon pour gérer les serveurs FTP hérités. Si vous avez vraiment besoin d'un analyseur et avez un peu de temps, il suffit de porter FileZilla's directory listing parser à PHP.

Questions connexes