Lister fichiers d'un serveur FTP avec date

arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   -  
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je cherche à lister des fichiers d'un serveur FTP et d'afficher la date du fichier (dernière modif) en PHP.
J'arrive à lister les fichiers.
J'arrive à récupérer la date.

Pour lister les fichiers, je peux utiliser la fonction ftp_nlist() ou la fonction ftp_rawlist().
Pour récupérer la date, je peux exploiter le résultat de la fonction ftp_rawlist() ou utiliser la fonction ftp_mdtm().

Le problème:
- ftp_mdtm ralentis vachement la traitement de ma page (environ 500 résultats à afficher),
- ftp_rawlist n'est pas fiable pour récupérer la date.
Les résultats sont du type:
-rw-r--r-- 1 ftp ftp 4715946 Feb 08 2012 xxxxxxxxxx
-rw-r--r-- 1 ftp ftp 292207 May 24 16:35 xxxxxxxxxx
Un coup j'ai la date, un coup j'ai heure. Je ne peux donc pas exploiter correctement ces données.

Avez-vous une idée pour faire correctement ce que je veux sans surcharger le traitement?
Merci par avance.


A voir également:

1 réponse

Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
Bonjour,
Avec une notion de separateur ...
"retrour ftp = lign "
tab=Explode(lign," ");
puis tu regroupes les colonnes de date ...
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Je suis pas sur d'avoir bien compris ce que tu essai de me dire.
Peux-tu être plus précis?

D'après ce que je comprends, tu es dans le cas où j'utilise la fonction ftp_rawlist().
Ton explode me permet de séparer les données.
J'ai déjà essayé avec cette ligne de code:
$filedata = preg_split("#[\s]+#", $fichier);

($fichier étant une ligne retourné par ftp_rawlist() )

Toutefois, ftp_rawlist() me retourne ça:
-rw-r--r-- 1 ftp ftp 4715946 Feb 08 2012 xxxxxxxxxx
-rw-r--r-- 1 ftp ftp 292207 May 24 16:35 xxxxxxxxxx 

Un coup j'ai l'heure du fichier (et pas l'année), l'autre j'ai l'année (et pas l'heure).
Je ne peux donc pas exploité ces données.
0
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
 <?php                                     
echo "<hr>";
 $file_attribut  = "-rw-r--r-- 1 ftp ftp 4715946 Feb 08 2012 xxxxxxxxxx";
$attribut = explode(" ", $file_attribut);
print_r($attribut);
if (strstr($attribut[7],':')) echo 'y a une heure'; else echo 'y a une année';
echo "<hr>";

$file_attribut  = "-rw-r--r-- 1 ftp ftp 292207 May 24 16:35 xxxxxxxxxx ";
$attribut = explode(" ", $file_attribut);
print_r($attribut);
if (strstr($attribut[7],':')) echo 'y a une heure'; else echo 'y a une année';
echo "<hr>";
?>
0
tryan44 Messages postés 1288 Date d'inscription   Statut Membre Dernière intervention   220
 
ça peut peut être aidé » https://cyberzoide.developpez.com/php4/file/
0
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
ton exemple ne traite pas des fichiers en ftp ????
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
@Fallentree: Merci d'avoir pris le temps de me répondre mais justement, c'est l'année que je souhaite récupérer. Désolé, je suis fautif, j'ai oublié de préciser ce point précis dès le départ.

En fait, je souhaite au final récupérer la date sous la forme jj/mm/aaaa.
Dans ce cas:
-rw-r--r-- 1 ftp ftp 4715946 Feb 08 2012 xxxxxxxxxx 

Je n'ai aucun problème.
Par contre:
-rw-r--r-- 1 ftp ftp 292207 May 24 16:35 xxxxxxxxxx 

Là souci!
D'où ma question de départ (qui semblera peut-être plus pertinente maintenant).
0