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] file_get_contents Vs. ftp_get


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 497
    Par défaut [FTP] file_get_contents Vs. ftp_get
    Bonjour,

    J'essaye de capturer une serie de fichier accessibles pour certains par http, d'autres par ftp, je n'ai aucun controle la dessus.

    J'ai donc essaye ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $flux['machin'] = "http://www.machin.com/fic_xml/machin.xml";
    $flux['truc'] = "http://www.truc.com/images/m3/CS/truc.zip";
    $flux['blah'] = "ftp://user:pass@trucmuche.com/trucmuche.xml";
    $flux['blooh'] = "ftp://user:pass@bidule.fr/bidule.zip";
    etc...
     
    foreach($flux as $key=>$value)
    {
    	//echo $value;
    	$mon_flux = file_get_contents($value);
    	file_put_contents("/var/www/tests/flux/".$key.".".substr($value,-3), $mon_flux);
    	chmod("/var/www/tests/flux/".$key.".".substr($value,-3), 0777);
    }

    Ca marche bien pour le http, et pour CERTAINS ftp.. mais pas tous, et la est mon probleme !!

    Pour certains ftp il me sort cette erreur :
    Warning: file_get_contents(ftp://.../machin.zip) [function.file-get-contents]: failed to open stream: FTP server reports 550 file does not exist in /var/www/tests/ceto.php on line 13

    Alors que quand j'essaye avec les fonctions FTP classiques de php, ca marche :

    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
    $ftp_server = "blah";
    $ftp_user_name="user";
    $ftp_user_pass="pass";
    $server_file="truc.zip";
    $local_file="/var/www/tests/flux/truc.zip";
     
    // Création de la connexion
    $conn_id = ftp_connect("$ftp_server");
     
    // Authentification avec nom de compte et mot de passe
    $login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass");
     
    // Vérification de la connexion
    if ((!$conn_id) || (!$login_result)) {
            echo "La connexion FTP a échoué!";
            echo "Tentative de connexion à $ftp_server avec $ftp_user_name";
            die;
        } else {
            echo "Connecté à $ftp_server, avec $ftp_user_name";
        }
     
    if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
       echo "Le fichier $local_file a été écris avec succès\n";
    } else {
       echo "Il y a un problème\n";
    }
     
    // Fermeture de la connexion FTP.
    ftp_quit($conn_id);

    D'ou peut venir le probleme ?? parce que ca me simplifierait bien la vie de tout obtenir par file_get_contents plutot qu'une fonction ftp speciale pour les fichiers ftp.. !

  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
    Par défaut
    Tu essayes de récupérer le contenu du fichier sous forme de chaine de caractères ce qui inclus que ton fichier est composé lui même d'une chaine (je sais pas si c'est assez clair).

    Donc il faut faire la différence entre les extensions présentes dans le ftp.
    SI tu souhaites juste faire du copier colle ftp-local les fonctions ftp sont parfaites. Sinon si c'est pour du traitement de chaines (issus des fichiers sur le ftp) alors file_get_contents sera une des solutions.

    Aussi, file_get_contents ouvre le fichier alors que c'est pas le cas pour l'autre

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 497
    Par défaut
    ok, donc file_get_contents sur un ftp et un fichier zip : niet ?
    ca marche bien sur le fichier xml..
    bon, je vais proceder avec les commandes ftp..

    Merci, mr Kerod

  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
    Par défaut
    Un fichier xml est comme un fichier txt, il contient un flux précis qui peut récupérer sous forme de chaine de caractères.

    Alors qu'un zip est un ensemble de fichiers (parfois) compressés.Donc subissent un certain encodage.

    C'est clair que tu peux pas lire un zip comme un html ou txt ou meme xml.

    Donc si ton but est uniquement du déplacement sans récupérer le contenu sous forme chaine pour effectuer un traitement plus tard, les fonctions de lecture sont parfaites, dans le cas contraire les fonctions ftp.

    Mais si tu veux récuperer le contenu de chacun des fichiers pour traitement il faudrait à ce moment là effectuer un masque pour récupérer que les fichiers pouvant être lu

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

Discussions similaires

  1. [FTP] Récupérer un ficher distant avec ftp_get
    Par boteha dans le forum Langage
    Réponses: 6
    Dernier message: 25/03/2010, 10h41
  2. Réponses: 2
    Dernier message: 23/07/2009, 15h03
  3. [FTP] ftp_get avec des images et leur qualité!
    Par Laurelaie dans le forum Langage
    Réponses: 4
    Dernier message: 22/07/2008, 13h22
  4. Réponses: 1
    Dernier message: 25/10/2007, 14h02
  5. [FTP] Warning avec ftp_get, mais pas de message d'erreur
    Par NomUtilisateurDejaPris dans le forum Langage
    Réponses: 2
    Dernier message: 22/02/2006, 19h12

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