IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Parcours d'un répertoire en FTP : amélioration du temps


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de arcane
    Inscrit en
    Avril 2003
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 313
    Par défaut Parcours d'un répertoire en FTP : amélioration du temps
    Bonjour,
    J'ai des dossiers d'archivage de fichiers, avec environ entre 5000 et 10000 fichiers.
    Dedans, je ne voudrais scruter que ceux de moins de 24h.
    Vu le nombre de répertoire que j'ai et la façon dont est conçue ma fonction, mon script complet dure environ 15 minutes, alors que je suis persuadé de faire la même chose en beaucoup moins de temps.
    Ma fonction scanne chaque fichier, regarde la date de modif et met le fichier dans un tableau s'il a moins de 24h. (après, l'analyse des tableaux se fait rapidement)
    Existe t'il une fonction ou des paramètres qui me permettraient de ne pas tout scanner ? un peu comme un powershell suivant : (qui met la liste des fichiers dans un fichier texte)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-ChildItem -Path "\Archive"| Where-Object {$_.LastWriteTime -ge (Get-Date).AddDays(-1)} | Select-Object Name,LastWriteTime | Export-Csv -Delimiter ";" -Path "\Controles\liste1.txt" -NoTypeInformation
    Ma fonction PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    function fichiersdemoinsde24h($resource, $directory = '.') {
            if (is_array($children = @ftp_rawlist($resource, $directory))) {
                $items = array();
    			$cpt = 0;
    			$aujourdhui = time();
                foreach ($children as $child) {
                    $chunks = preg_split("/\s+/", $child);
    				$cpt++;
                    list($item['rights'], $item['number'], $item['user'], $item['group'], $item['size'], $item['month'], $item['day'], $item['time']) = $chunks;
                    $item['type'] = $chunks[0][0] === 'd' ? 'directory' : 'file';
    				$timestampfichier = ftp_mdtm($resource, $chunks[8]); // Retourne la date de la dernière modification du fichier sur le FTP
    				if ($aujourdhui-$timestampfichier<=86400) {echo "<br />\n" . $chunks[8]; $items[]=$chunks[8];} /*else {echo "<br /> Je prends pas";}*/;
                }
                return $items;
            }
        };
    Note : je ne peux plus utiliser le powershell pour des questions de droit, je n'ai accès aux archives que par FTP maintenant.
    Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2023
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2023
    Messages : 100
    Par défaut
    Hello

    regarde les posts ici
    https://stackoverflow.com/questions/...te-through-php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    https://stackoverflow.com/questions/50927297/list-folders-only-from-ftp-server-with-php
    Etant donné que c est trié chronologiquement, une fois ta durée > 24 heures, tu sorts de la boucle et tu gagnes un temps fou.

  3. #3
    Membre éclairé Avatar de arcane
    Inscrit en
    Avril 2003
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 313
    Par défaut
    Merci pour l'info. Pour le moment je n'arrive pas à mettre cela en œuvre, mais c'est prometteur. Je vais creuser plus.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Parcours d'un répertoire
    Par sfaxi dans le forum Linux
    Réponses: 1
    Dernier message: 18/01/2007, 18h31
  2. Répertoire racine FTp
    Par ZIED dans le forum IIS
    Réponses: 5
    Dernier message: 05/08/2006, 14h15
  3. [VB.NET] Listing d'un répertoire par FTP avec API
    Par joefou dans le forum VB.NET
    Réponses: 1
    Dernier message: 16/12/2005, 15h29
  4. [DEBUTANT MFC] Parcours d'un répertoire
    Par gwendo dans le forum MFC
    Réponses: 3
    Dernier message: 15/09/2005, 17h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo