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] Rechercher des fichiers dans un site FTP par PHP


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Points : 47
    Points
    47
    Par défaut [FTP] Rechercher des fichiers dans un site FTP par PHP
    salut tous le monde
    j'ai un probléme qui me géne c'est que je ne sais pas comment chercher des fichiers x.jpg dans un espace ftp par un script php
    aidez moi svp
    C'est trés bon de savoir qu'il y a un paradis a l'aprévie car la vie c'est rieeeeeeen

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Tu as ceci : Comment lister les fichiers et dossiers triés par ordre lexicographique ?
    Et la fonction utilisée dans cette Q/R pour faire des recherches spécifiques selon l'extension :
    Comment savoir si un dossier est vide ?
    Comment supprimer massivement des fichiers ?

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Points : 47
    Points
    47
    Par défaut
    merci pour les liens Mr Kerod
    le probléme c'est que je dois faire un script pour qu'il puiss démarrer une recherche das fichiers *.jpg dans un site FTP et les lister dans une liste déroulante. comment faire et merci en avance pour votre aide.
    C'est trés bon de savoir qu'il y a un paradis a l'aprévie car la vie c'est rieeeeeeen

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Hummm oui je vois donc oublies les sujets données car il va falloir utiliser les fonctions ftp et les regexp (peut etre qu'il y a plus simple).

    Je suppose pour ce qui est de la connexion, il y a aucun problème.
    Pour récupérer la liste détaillé des fichiers sur le ftp, tu dois utiliser la fonction ftp_nlist qui te renvoie un tableau contenant le nom du fichier (donc extension) puis les infos sur celui-ci (taille, date et etc...)

    Un fois que tu as ce tableau, tu n'as plus qu'à utiliser la regexp (magique, non ?? ). Pour celle-ci, je pense que ceci devrait faire l'affaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    eregi("#\.jpg#", $liste[$i])
    ou carrément voir celle disponible ici : Comment tester l'extension d'un fichier ?


    ps : à savoir que $liste[$i] est le tableau renvoyer par ftp_nlist

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Points : 47
    Points
    47
    Par défaut
    voila j'ai fait ce code mais il déclare un erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $ftp_server='*******************';
    $ftp_user_name='****';
    $ftp_user_pass='****';
    // Mise en place d'une connexion basique
    $conn_id = ftp_connect($ftp_server);
    // Identification avec un nom d'utilisateur et un mot de passe
    $login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);
    // Récupération du contenu d'un dossier
    $contents = ftp_nlist($conn_id, "/mypr");
    // Affichage de $contents
    var_dump($contents);
    ?>
    le message d'erreur c'est :
    Fatal error: Maximum execution time of 30 seconds exceeded in c:\apache\htdocs\testing\esai.php on line 12
    C'est trés bon de savoir qu'il y a un paradis a l'aprévie car la vie c'est rieeeeeeen

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Ce qui serait bien, ce serait de donner la ligne qui a l'erreur...Sinon penses à mettre un set_timeout

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Une erreur de port ? La fonction ftp_connect prend aussi un paramètre timeout (que l'on peut aussi fixer avec ftp_set_option) car par défaut il est de 90 secondes .


    Julp.

  8. #8
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Points : 47
    Points
    47
    Par défaut
    j'ai ajouter le time out:
    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
    <?php
    $ftp_server='*************';
    $ftp_user_name='******';
    $ftp_user_pass='*******';
    // Mise en place d'une connexion basique
    $conn_id = ftp_connect($ftp_server,,10);
    ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 10);
    // Identification avec un nom d'utilisateur et un mot de passe
    $login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);
     
    // Récupération du contenu d'un dossier
    $contents = ftp_nlist($conn_id, "/mypr");
     
    // Affichage de $contents
    var_dump($contents);
     
    ?>
    et voici le resultat :
    Parse error: parse error in c:\apache\htdocs\testing\esai.php on line 6
    la ligne n° 6 c'est :$conn_id = ftp_connect($ftp_server,,10);
    C'est trés bon de savoir qu'il y a un paradis a l'aprévie car la vie c'est rieeeeeeen

  9. #9
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 981
    Points
    2 981
    Par défaut
    ya rien entre ,, ?

    ftp_connect($ftp_server,???????,10);

    pk ne pas mettre le port ?!

  10. #10
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par omura
    ya rien entre ,, ?

    ftp_connect($ftp_server,???????,10);

    pk ne pas mettre le port ?!
    car je sais pas c'est quoi le port? merci de me dire c'est quoi?
    C'est trés bon de savoir qu'il y a un paradis a l'aprévie car la vie c'est rieeeeeeen

  11. #11
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Voici un code qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $conn_id = ftp_connect("$ftp_server");
     
        if($conn_id)
        {
            @ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 2);
            // login with username and password
            $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
     
        }
    Et après il faut tester si le $login_result est ok pour pouvoir faire les traitements que tu souhaites réaliser

    ps : pour des questions de sécurités évites de mettre tes identifiants ftp ainsi que pass

  12. #12
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Points : 47
    Points
    47
    Par défaut
    Merci bien Mr Kerod
    j'ai modifié mon code grace au code que vous avais mis et voila:
    <?
    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
    $ftp_server='***********';
    $ftp_user_name='******';
    $ftp_user_pass='****';
    $conn_id = ftp_connect($ftp_server);
     
        if($conn_id)
        {
            @ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 2);
            // login with username and password
            $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
            $contents = ftp_nlist($conn_id, ".");
     
            // Affichage de $contents
            var_dump($contents);
        }
    ?>
    il ne donne aucun message d'erreur mais il n'affiche que le vide pq?
    C'est trés bon de savoir qu'il y a un paradis a l'aprévie car la vie c'est rieeeeeeen

  13. #13
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    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
    <?
    $ftp_server='***********';
    $ftp_user_name='******';
    $ftp_user_pass='****';
    $conn_id = ftp_connect($ftp_server);
     
        if($conn_id)
        {
            @ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 2);
            // login with username and password
            $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
            if($login_result)
            {
                 $contents = ftp_nlist($conn_id, ".");
                 // Affichage de $contents
                 var_dump($contents);
            }
            else
            {
                 echo "identification impossible";
            }
        }
    ?>
    Testes avec ce code et dis moi si l'identification est correcte...Sinon tu as au moins des fichiers sur ton ftp

  14. #14
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par Kerod
    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
    <?
    $ftp_server='***********';
    $ftp_user_name='******';
    $ftp_user_pass='****';
    $conn_id = ftp_connect($ftp_server);
     
        if($conn_id)
        {
            @ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 2);
            // login with username and password
            $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
            if($login_result)
            {
                 $contents = ftp_nlist($conn_id, ".");
                 // Affichage de $contents
                 var_dump($contents);
            }
            else
            {
                 echo "identification impossible";
            }
        }
    ?>
    Testes avec ce code et dis moi si l'identification est correcte...Sinon tu as au moins des fichiers sur ton ftp
    j'ai écris le code si dessus mais rien n'a changé et pour la question du ftp voici l'image de mon ftp
    C'est trés bon de savoir qu'il y a un paradis a l'aprévie car la vie c'est rieeeeeeen

  15. #15
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Bon voilà un code que j'avais fait pour un explorateur ftp :
    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
    if ($conn_id)
        {
          echo 'Status : Connecté&nbsp;&nbsp;';
          echo '<img src="images/on.gif" alt="connecté"/>';
          if(@ftp_chdir($conn_id, $path)) 
          {
            echo '<tr><th align="left">Nom du fichier</th><th width="12%">Taille</th></tr>';
            // Récupère la liste des fichiers de /
            $liste = @ftp_nlist($conn_id,'');
            for($i = 0; $i < count($liste); $i++)
            {// Récupération de la taille du fichier $file
              $taille = @ftp_size($conn_id, $liste[$i]);
              echo '<tr><td class="row1"><span class="gen">'.$liste[$i].'&nbsp;</span></td>';
              echo '<td align="right" class="row1" nowrap="nowrap"><span class="gen">'.$size.'&nbsp;</span></td></tr>';
            }
          }
          else
          {
              echo "<span class='gen' style='float:right'><b>Dossier inexistant</b></span></td></tr>";
          }
        }
    Et ca fonctionnait...Testes
    Sinon ca peut venir juste du .

  16. #16
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Points : 47
    Points
    47
    Par défaut
    Merci bien Mr Kerod
    mais voila ce qu'il affiche
    C'est trés bon de savoir qu'il y a un paradis a l'aprévie car la vie c'est rieeeeeeen

  17. #17
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Montres l'intégralité de ton code pour voir

  18. #18
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Points : 47
    Points
    47
    Par défaut
    Merci bien Mr Kerod pour votre patiance
    voila le code :
    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
    <? 
    $ftp_server='**********';
    $ftp_user_name='******';
    $ftp_user_pass='******';
    $conn_id = ftp_connect($ftp_server);
    	if ($conn_id)
        {
          echo 'Status : Connecté&nbsp;&nbsp;';
          echo '<img src="images/on.gif" alt="connecté"/>';
          if(@ftp_chdir($conn_id, $path)) 
          {
            echo '<tr><th align="left">Nom du fichier</th><th width="12%">Taille</th></tr>';
            // Récupère la liste des fichiers de /
            $liste = @ftp_nlist($conn_id,'');
            for($i = 0; $i < count($liste); $i++)
            {// Récupération de la taille du fichier $file
              $taille = @ftp_size($conn_id, $liste[$i]);
              echo '<tr><td class="row1"><span class="gen">'.$liste[$i].'&nbsp;</span></td>';
              echo '<td align="right" class="row1" nowrap="nowrap"><span class="gen">'.$size.'&nbsp;</span></td></tr>';
            }
          }
          else
          {
              echo "<span class='gen' style='float:right'><b>Dossier inexistant</b></span></td></tr>";
          }
        }
    ?>
    C'est trés bon de savoir qu'il y a un paradis a l'aprévie car la vie c'est rieeeeeeen

  19. #19
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    bon je vais t'expliquer quelque chose.

    Le code que je t'ai donné fonctionnait avec des variables définis plus haut..Par exemple la variable $path est le nom du dossier dans lequel je voulais aller et si je ne l'avais pas choisis c'était la racine par défaut.

    Donc on va changer tout ca :
    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
    <? 
    $ftp_server='**********';
    $ftp_user_name='******';
    $ftp_user_pass='******';
    $conn_id = ftp_connect($ftp_server);
        if ($conn_id)
        {
          echo 'Status : Connecté&nbsp;&nbsp;';
          echo '<img src="images/on.gif" alt="connecté"/>';
          echo '<tr><th align="left">Nom du fichier</th><th width="12%">Taille</th></tr>';
            // Récupère la liste des fichiers de /
            $liste = @ftp_nlist($conn_id,'');
            for($i = 0; $i < count($liste); $i++)
            {// Récupération de la taille du fichier $file
              $taille = @ftp_size($conn_id, $liste[$i]);
              echo '<tr><td class="row1"><span class="gen">'.$liste[$i].'&nbsp;</span></td>';
              echo '<td align="right" class="row1" nowrap="nowrap"><span class="gen">'.$size.'&nbsp;</span></td></tr>';
            }
        }
    ?>
    voilà et il faut rajouter le ftp_login et le tester avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $liste = @ftp_nlist($conn_id,'');

  20. #20
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Points : 47
    Points
    47
    Par défaut
    merci bien Mr kerod
    voila le code :
    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
    <? 
    $ftp_server='------------------';
    $ftp_user_name='--------------';
    $ftp_user_pass='---------------';
    $conn_id = ftp_connect($ftp_server);
        if ($conn_id){
          echo 'Status : Connecté&nbsp;&nbsp;';
          echo '<img src="images/on.gif" alt="connecté"/>';
          echo '<tr><th align="left">Nom du fichier</th><th width="12%">Taille</th></tr>';
            // Récupère la liste des fichiers de /
    	    $login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);
            if($login_result)
            {
            $liste = @ftp_nlist($conn_id,'/mypr');
            for($i = 0; $i < count($liste); $i++)
            {// Récupération de la taille du fichier $file
              $taille = @ftp_size($conn_id, $liste[$i]);
              echo '<tr><td class="row1"><span class="gen">'.$liste[$i].'&nbsp;</span></td>';
              echo '<td align="right" class="row1" nowrap="nowrap"><span class="gen">'.$size.'&nbsp;</span></td></tr>';
            }
    		}
        }
    ?>
    et voila ce qu'il affiche :
    C'est trés bon de savoir qu'il y a un paradis a l'aprévie car la vie c'est rieeeeeeen

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Déplacer des fichiers dans un meme ftp
    Par Invité dans le forum Développement de jobs
    Réponses: 11
    Dernier message: 07/08/2012, 12h44
  2. Rechercher un fichier dans un site
    Par timalin dans le forum VBScript
    Réponses: 0
    Dernier message: 02/11/2009, 14h53
  3. rechercher des fichiers dans tous les dossiers
    Par nitteo dans le forum MFC
    Réponses: 4
    Dernier message: 23/06/2006, 18h08
  4. [] [Réseau] Renommer des fichiers dans un site FTP
    Par JerBi dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 22/08/2003, 00h35

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