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] Accès fichiers sur serveur distant


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2004
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 55
    Par défaut [FTP] Accès fichiers sur serveur distant
    Salut à tous

    (Désolé de reposter mais finalement mon ancien post (http://www.developpez.net/forums/sho...d.php?t=168566) ne correspondait plus trop à ce que je voulais (trop compliqué) donc si mr l'admin peut le virer...)

    Voilà cette fois ce sera simple : je voudrais savoir comment tester l'existence de fichiers situés sur un serveur distant.
    Mon appli est sur un serveur d'appli (bah oui) et les fichiers auxquels je voudrais accéder sont sur un autre serveur.

    j'utilise comme "url" un truc du genre : \\ipserveurdefichier\rep\fichier.ext
    et fopen me dit que le chemin, dossier, fichier n'existe pas
    et file_exists me renvoi false en permanence

    par contre en passant par href=file://///ipserveurdefichier/rep/fichier.ext aucun problème

    Toute idée est la bienvenue, merci

  2. #2
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    bah c'est normal, cette écriture avec des \ dans le chemin c'est typique windows, mais pas du tout php.

    il est ou ton probleme en fait ??

  3. #3
    Membre averti
    Inscrit en
    Février 2004
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 55
    Par défaut
    Après un certain nombre de recherches j'ai enfin trouvé cette petite fonction qui teste la validité d'une url :
    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
    39
    40
    41
    42
    43
    44
      function remote_file_exists ($url)
    {
     
    /*
       Return error codes:
       1 = Invalid URL host
       2 = Unable to connect to remote host
    */
     
       $head = "";
       $url_p = parse_url ($url);
     
       if (isset ($url_p["host"]))
       { $host = $url_p["host"]; }
       else
       { return 1; }
     
       if (isset ($url_p["path"]))
       { $path = $url_p["path"]; }
       else
       { $path = ""; }
     
       $fp = fsockopen ($host, 80, $errno, $errstr, 20);
       if (!$fp)
       { return 2; }
       else
       {
           $parse = parse_url($url);
           $host = $parse['host'];
     
           fputs($fp, "HEAD ".$url." HTTP/1.1\r\n");
           fputs($fp, "HOST: ".$host."\r\n");
           fputs($fp, "Connection: close\r\n\r\n");
           $headers = "";
           while (!feof ($fp))
           { $headers .= fgets ($fp, 128); }
       }
       fclose ($fp);
       $arr_headers = explode("\n", $headers);
       $return = false;
       if (isset ($arr_headers[0]))
       { $return = strpos ($arr_headers[0], "404") === false; }
       return $return;
    }
    elle marche bien et même un peu trop bien car même si le fichier n'existe pas, elle trouve quelque chose.

    J'ai bien vu que ça sort au début parce que vu la tête de mon url le url_parse marche pas vraiment mais etant assez newbie en php si quelqu'un est capable de m'expliquer un peu ce que ça fait ou encore où se trouve "l'erreur" (s'il y en a une) je lui en serait reconnaissant.

    Merci

  4. #4
    Membre averti
    Inscrit en
    Février 2004
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 55
    Par défaut
    il est ou ton probleme en fait ??
    Mon problème est que je veus tester l'existence d'un fichier situé sur un serveur distant et s'il existe l'ouvrir. Or je vois pas vraiment comment accéder à ce fichier.
    En fait si tu dis que les \\ sont propres à windows, quel serait l'équivalent php ou Linux ...?

  5. #5
    Membre émérite
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Par défaut
    Tu ne peut faire de file_exists() sur un serveur distant... ça va de soit... cette fonction utilise le système de fichier du serveur où la fonction est appelée... .. .

    Concernant le fopen() si c'est pour un fichier distant utilise une url et non pas un path physique... et ce pour les mêmes raison qu'avec file_exists()... .. .

    @ tchaOo°

  6. #6
    Membre averti
    Inscrit en
    Février 2004
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 55
    Par défaut
    merci kankrelune mais malheureusement je ne vois pas vraiment comment former mon URL.

    voilà les infos dont je dispose, si tu pouvais m'aiguiller pour cette URL de m....
    protocole : ??
    ipserveur où est fichier : j'ai
    lettre lecteur réseau (<=> serveur au dessus) : j'ai
    chemin du fichier : j'ai (\dossiers\...\)
    nom du fichier : j'ai (.sxw ou .doc)

    merci encore

  7. #7
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    peut être que tu peux essayer une url du genre:
    http://nomdedomaine.com/dossier_1/do...le_fichier.txt

    c'est je pense un des meilleurs moyens d'accèder à un serveur distant.

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

Discussions similaires

  1. Accès à un fichier sur serveur distant
    Par s_n_r_k dans le forum PL/SQL
    Réponses: 2
    Dernier message: 28/12/2014, 11h40
  2. Réponses: 2
    Dernier message: 18/04/2007, 15h44
  3. Réponses: 3
    Dernier message: 01/03/2007, 10h18
  4. existence d'un fichier sur serveur distant
    Par Fabouney dans le forum Programmation et administration système
    Réponses: 3
    Dernier message: 17/01/2006, 10h18
  5. [Sybase] Accès Table sur serveur distant
    Par MashiMaro dans le forum Sybase
    Réponses: 5
    Dernier message: 11/02/2004, 14h09

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