FTP : trouver le fichier le plus récent

Eléphant du PHP | 75 Messages

24 févr. 2017, 11:15

Bonjour,

C'est la première fois que j'utilise les fonction FTP.

J'aimerai trouver le fichier le plus récent se trouvant dans un dossier bien spécifique.

Pour le moment j'arrive à :
- me connecter au FTP : ftp_connect()
- me rendre dans le bon dossier : ftp_chdir()
- Faire une liste détaillée des fichiers du dossier : ftp_rawlist()

le code me permettant de lister les fichiers :
$liste_fichiers = ftp_rawlist($ftp, '.');
	foreach($liste_fichiers as $v) {
    $info = array();
    $vinfo = preg_split("/[\s]+/", $v, 9);
    if ($vinfo[0] !== "total") {
      $info['chmod'] = $vinfo[0];
      $info['num'] = $vinfo[1];
      $info['owner'] = $vinfo[2];
      $info['group'] = $vinfo[3];
      $info['size'] = $vinfo[4];
      $info['month'] = $vinfo[5];
      $info['day'] = $vinfo[6];
      $info['time'] = $vinfo[7];
      $info['name'] = $vinfo[8];
      $rawlist[$info['name']] = $info;
    }
  }
  $dir = array();
  $file = array();
  foreach ($rawlist as $k => $v) {
    if ($v['chmod']{0} == "d") {
      $dir[$k] = $v;
    } elseif ($v['chmod']{0} == "-") {
      $file[$k] = $v;
    }
  }
 foreach ($file as $filename => $fileinfo) {
      echo "$filename " . $fileinfo['chmod'] . " | " . $fileinfo['owner'] . " | " . $fileinfo['group'] . " | " . $fileinfo['size'] . " Byte | " . $fileinfo['month'] . " " . $fileinfo['day'] . " " . $fileinfo['time'] . "<br>";
  }
j'aimerai trouver le fichier le plus récent commençant par image_A_xxxx.jpg puis image_B_xxxx.jpg puis image_C_xxxx.jpg

Avez-vous des pistes ?

Avatar de l’utilisateur
Modérateur PHPfrance
Modérateur PHPfrance | 8682 Messages

24 févr. 2017, 11:43

salut,

a priori je dirais qu'il te faut stoker les fichiers dans un tableau
ordonner par nom d'image avec la fonction array_multisort ensuite tu parcours le tableau pour chercher l'info que tu souhaites afficher.

une autre solution c'est parcourir le tableau et de créer un tableau avec en index le nom du fichier et en valeur le tableau du fichier complet.
si tu tombes sur un autre fichier avec le même début tu vérifies la date et remplace si plus récent?

au final tu auras un tableau avec en index le début du fichier et en valeur un tableau qui contient les données des fichiers
pour affiche par ordre alphabétique utilise la fonction ksort

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 75 Messages

24 févr. 2017, 11:59

Merci pour ta réponse. J'ai regardé les fonctions cités. Je crois que ça dépasse mes compétences en PHP ! ! :/