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 :

Lire les fihier sur un FTP distant [PHP 4]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 28
    Par défaut Lire les fihier sur un FTP distant
    Bonjour,

    je dit créer un code qui se connecte à un ftp distant et qui lit les fichiers se trouvant sur ce FTP (par la suite mon code analyse ce qu'il a lut et charge les donnés dans une BD SQL).

    Seulement j'ai une erreur que je n'arrive pas à résoudre!
    Voici mon 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
     
    //Connexion au FTP
    $conn_id = ftp_connect("$ftp_server");
    $login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass");
    if ((!$conn_id) || (!$login_result)) {
            echo "La connexion FTP a échoué!<br/>";
            die;
        } else {
            echo "Connecté<br/>";
        }
    //accès au fichier du ftp :
    $buff = ftp_nlist($conn_id, 'confirmed_purchase/');
    for ($i=0; $i<=count($buff); $i++){
    		$fichier = $buff[$i];
    		if (!$fp = fopen($fichier,"r")) {
    			$erreur = $erreur."<a href=ftp://".$ftp_user_name.":".$ftp_user_pass."@ftp.priceminister.com/confirmed_purchase/".$level[2].">".$level[2]."</a><br/>";
    		}
    		else {
    			//taitement de la lecture
    		}
    Voici les logs quand je lance le script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Connecté
     
    Warning: fopen(confirmed_purchase/confirmed_purchase_items_2010_09_20_18_34.txt) [function.fopen]: failed to open stream: No such file or directory in /homez.166/abaytec/www/load.php on line 53
    alors que je pt à la mains ouvrir ce fichier :
    ftp://ftp.priceminister.com/confirme...9_20_18_34.txt

    A savoir que mon code est sur un ftp A et que mon script se log sur le ftp de price minister.

    pouvez vous m'aider?

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 369
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 369
    Billets dans le blog
    17
    Par défaut
    Donc pour résumer tu obtiens une erreur à ce niveau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $conn_id = ftp_connect($ftp_server);
    ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    $buff = ftp_nlist($conn_id, 'confirmed_purchase/');
    Et si tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $conn_id = ftp_connect($ftp_server);
    ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    $buff = ftp_nlist($conn_id, 'confirmed_purchase');
    Ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $conn_id = ftp_connect($ftp_server);
    ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    $buff = ftp_nlist($conn_id, '.');
    Qu'es-ce que ça donne ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 28
    Par défaut
    Citation Envoyé par Séb. Voir le message
    Donc pour résumer tu obtiens une erreur à ce niveau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $conn_id = ftp_connect($ftp_server);
    ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    $buff = ftp_nlist($conn_id, 'confirmed_purchase/');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: fopen(confirmed_purchase//confirmed_purchase_items_2010_09_20_18_34.txt) [function.fopen]: failed to open stream: No such file or directory in /homez.166/abaytec/www/load.php on line 55
    Citation Envoyé par Séb. Voir le message
    Donc pour résumer tu obtiens une erreur à ce niveau :

    Et si tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $conn_id = ftp_connect($ftp_server);
    ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    $buff = ftp_nlist($conn_id, 'confirmed_purchase');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: fopen(confirmed_purchase/confirmed_purchase_items_2010_09_20_18_34.txt) [function.fopen]: failed to open stream: No such file or directory in /homez.166/abaytec/www/load.php on line 55
    Citation Envoyé par Séb. Voir le message
    Donc pour résumer tu obtiens une erreur à ce niveau :

    Ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $conn_id = ftp_connect($ftp_server);
    ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    $buff = ftp_nlist($conn_id, '.');
    Qu'es-ce que ça donne ?
    ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: fopen(confirmed_purchase) [function.fopen]: failed to open stream: No such file or directory in /homez.166/abaytec/www/load.php on line 55
    ce qui est logique, car le but de ce script est d'aller ouvrir les fichiers texts qui se trouvent dans le dossier confirmed_purchase

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 369
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 369
    Billets dans le blog
    17
    Par défaut
    Oups désolé, j'ai mal lu le msg d'erreur tout à l'heure

    Je pense que le pb vient plutôt du fopen :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!$fp = fopen($fichier,"r")) {
    Là tu essaies de récupérer le fichier local dénommé $fichier.
    Pour récupérer le fichier depuis le serveur FTP il faut utiliser ftp_get( ) ou ftp_fget( ).

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 28
    Par défaut
    oui le soucis viens du fopen c'est clure!

    par contre ftp_fget( ) télécharge le fichier remote_file depuis le serveur FTP et l'écrit dans le fichier identifié par handle (d'après la doc).

    cela signifie quoi exactement?

    ftp_fget($conn_id, $handle, $remote_file, FTP_ASCII, 0)
    se connec au ftp $conn_id, prend le fichier $remote_file qui est physiquement sur le ftp l'ecrit dans un fichier $handle qui est physiquement sur mon PC c'est ça?

    donc dans on cas le code serais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $buff = ftp_nlist($conn_id, 'confirmed_purchase/');
    for ($i=0; $i<=count($buff); $i++){
    		$fichier = ftp_fget($conn_id, $fichiersurC, $buff[$i], FTP_ASCII, 0)
    		if (!$fp = fopen($fichier,"r")) {
    			$erreur = $erreur."<a href=ftp://".$ftp_user_name.":".$ftp_user_pass."@ftp.priceminister.com/confirmed_purchase/".$level[2].">".$level[2]."</a><br/>";
    		}
    		else {
    			//taitement de la lecture
    		}

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 369
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 369
    Billets dans le blog
    17
    Par défaut
    se connec au ftp $conn_id, prend le fichier $remote_file qui est physiquement sur le ftp l'ecrit dans un fichier $handle qui est physiquement sur mon PC c'est ça?
    Un fichier qui est sur le serveur web PHP.

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

Discussions similaires

  1. [FTP] Lister les fichiers d'un FTP distant
    Par osmoze dans le forum Langage
    Réponses: 2
    Dernier message: 20/11/2006, 16h35
  2. comment lire les arguments sur l'entree standard
    Par batotoba dans le forum ANT
    Réponses: 1
    Dernier message: 04/09/2006, 18h50
  3. lire les secteurs sur un cd
    Par gedeon99 dans le forum MFC
    Réponses: 1
    Dernier message: 19/12/2005, 11h25
  4. lire les données sur un port RS232
    Par xave dans le forum Langage
    Réponses: 6
    Dernier message: 06/10/2005, 17h40
  5. [Audio] Comment lire les musiques sur un cd audio ?
    Par onlytoine dans le forum Multimédia
    Réponses: 3
    Dernier message: 10/07/2004, 23h03

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