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 :

Tester si une image distante existe


Sujet :

Langage PHP

  1. #21
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    Hello,

    à ta place j'enverais simplement une requete HTTP de type HEAD. Comme ça tu n'as qu'à tester le code de retour (en gros, il doit etre inférieur à 400).

    Pour la requete c'est très simple, via fsockopen, tu envois un truc du genre :
    "HEAD /chemin/vers/limage.jpg HTTP/1.0\n"
    "Host: www.le-domaine.tld\n"
    "\n"

    Puis la première ligne que tu récupèreras contiendra le code recherché.

    De plus, dans les autres entêtes tu aura surement le type mime, qui te permettra de vaguement vérifié qu'il s'agit bien d'une image. Toutefois, si le lien pointe vers une redirection, tu n'auras pas le type mime...

  2. #22
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 164
    Points : 64
    Points
    64
    Par défaut
    merci
    mais ceci marche si le site renvoie un code 200 sur une erreur 404 par exemple?

  3. #23
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    mmm.... dans ce cas ce n'est plus une erreur : si le site envoi vraiment un code 200, c'est qu'il a un vrai contenu correspondant à l'adresse saisie. Sinon le dev a vraiment fait n'importe quoi.

    Et au pire s'il t'envoie un code 200 avec type mime "text/html", je pense que tu peux en déduire qu'il y a un louppé quelque part.

  4. #24
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 164
    Points : 64
    Points
    64
    Par défaut
    car en fait mes fonctions en premiere pages marchées et utilisé fsockopen mais le probleme c'est que justement quand le serveur renvoie un code 200 bin sa marché pas.

    moi je voudrai faire un truc simple a la base : si l'image existe et quelle s'appel monimage.jpg alors je l'affiche sinon j'affiche une image de substitution

  5. #25
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    arf j'avais survolé ton premier post... désolé...

    M'enfin pour ton problème y a pas 36 solutions, qu'est ce qu'il te faut de plus ? A mon avis tu peux te contenter du controle sur le type mime.

  6. #26
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 164
    Points : 64
    Points
    64
    Par défaut
    bon voila alors j'ai voulu faire ce teste mais j'ai une erreur lol
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    $temp=  mime_content_type(l'url de mon fichier);
     
    return ($temp);

    erreur :

    Fatal error: Call to undefined function: mime_content_type() in /var/www/....

  7. #27
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    non non, pas en utilisant cette fonction, mais en utilisant une requete HTTP. Regarde bien les entetes retournés : il y a sûrement le type mime.

  8. #28
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 164
    Points : 64
    Points
    64
    Par défaut
    bon je te remerci mais je croi ke je vais laisser tomber car rien quavec ce petit code j'ai plein de warning a la premiere ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $temp=fsockopen ($fichier,80, $errno, $errstr, 20);
     
    fputs ($sock, "GET / HTTP/1.0\r\n\r\n");
    if ($sock)
    {
      //Lecture de la réponse du serveur
      while (!feof($sock)) 
      {
       $temp= fgets($sock,128);
      }
    }
    j'arrive pas a comprendre comment recupperer les entetes

Discussions similaires

  1. Comment tester qu'une image existe
    Par Salsaboy60 dans le forum VBA Access
    Réponses: 3
    Dernier message: 22/01/2014, 14h06
  2. Tester si une image existe
    Par Thewil dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/06/2009, 16h06
  3. Vérifier si une image distante existe
    Par fab4am dans le forum Langage
    Réponses: 26
    Dernier message: 02/01/2007, 17h10
  4. Réponses: 2
    Dernier message: 06/05/2006, 22h50
  5. Réponses: 7
    Dernier message: 05/05/2006, 19h55

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