FTP : trouver le fichier le plus récent

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : FTP : trouver le fichier le plus récent

Re: FTP : trouver le fichier le plus récent

par tom_nameless » 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 ! ! :/

Re: FTP : trouver le fichier le plus récent

par moogli » 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

@+

FTP : trouver le fichier le plus récent

par tom_nameless » 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 ?