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 :

ftp_list "vide" lorsqu'il y a beaucoup de fichiers


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut ftp_list "vide" lorsqu'il y a beaucoup de fichiers
    Bonjour,

    j'ai un souci avec ftp_nlist.
    Lorsque le dossier à lire contient beaucoup (> 100'000 ) fichiers,
    la liste retournée par ftp_list est vide.
    Chez moi cela semble fonctionner jusqu'à < 60'000 fichiers.
    Avec ftp_rawlist, la limite est atteinte encore plus vite, donc je suppose un pb de taille mémoire quelque part.

    J'ai augmenté memory_limit de php mais rien n'y fait, et mon script ne consomme de toute manière guère plus de 10 Mb
    lorsqu'il lit 50'000 noms de fichiers.

    Quelqu'un aurait-il eu le même problème, et une solution ?

    Merci d'avance

    (php 5.3.17 sous Windows 10, serveur FTP Unix selon ftp_systype() ...)

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu obtiens array() ou FALSE ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    J'obtiens array(), vraiment comme si le dossier était vide .

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Je suppose que tu as essayé de lire un autre dossier du même serveur qui contient beaucoup moins de fichiers (l'idéal serait un petit sous-dossier dans ton gros dossier, pour avoir les mêmes droits, chemins...), histoire de vérifier le bon fonctionnement de la connexion et du reste du code.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Candidat au Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Dans le processus global, c'est une autre application qui rempli le dossier distant qui est initialement vide.
    Mon code php lit très bien le dossier entre vide et ~ 50'000 fichiers, puis plus du tout dès que cette taille
    est dépassée, donc à priori pas de souci de droit d'accès ou de code du lecteur.
    Le voici à toutes fins utiles, très basic...:

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    if (isset($argv[1]))
    	$param = $argv[1];
    else
    	$param = '.';
     
    // set up basic connection 
    $conn_id = ftp_connect($ftp_server); 
    if (!$conn_id) 
    	die ("Cannot open FTP connection to $ftp_server");
    else
    	echo "Connected to $ftp_server (".ftp_systype($conn_id).")\n";
     
    $i=1;
     
    if (ftp_pasv($conn_id, true))
    	echo "Mode set to passive\n";
    else
    	echo "Mode NOT set to passive \n";
     
    // login with username and password 
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 
    if (!$login_result) die ("Cannot login with credentials $ftp_user_name, $ftp_user_pass"); 
     
     
    $file_list=ftp_nlist($conn_id, $param);
    // $file_list=ftp_rawlist($conn_id, $param);
     
    if (isset($file_list[0]))
    	foreach ($file_list as $file_name) {
    		echo $i++." $file_name\n";
    	}
    else
    {
    	var_dump($file_list);
    	echo("No content on folder $param");
    }
     
    ftp_close($conn_id);
    Ce qui est curieux c'est que filezilla n'arrive pas non plus à lire plus de 32'768 fichiers sur ce serveur ...
    Je vais essayer de remplir un autre serveur et tenter de lire ce contenu avec Filezilla et avec mon appli
    pour m'assurer que le problème ne vient pas d'une limitation au niveau du serveur de mon prestataire...

  6. #6
    Candidat au Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour à tous,

    le test avec un autre serveur est concluant!
    Je suis en train de pousser plus de 130'000 fichier et le script php proposé,
    tout comme filezilla, arrivent à lire le contenu du dossier sans problème.

    Le souci venait donc du serveur FTP de mon prestataire...

    Merci et bonnes salutations

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

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