[Résolu] Connaître le status d'une Balise IMG

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par mod12, 8 Décembre 2008.

  1. mod12
    mod12 Nouveau WRInaute
    Inscrit:
    8 Décembre 2008
    Messages:
    6
    J'aime reçus:
    0
    Salut tout le monde,

    Je cherche un moyen de tester le status d'une balise IMG, j'imagine que cela doit être possible par JavaScript / Ajax.

    En fait, mon link dans SRC est généré dynamiquement. Il arrive parfois qu'il est erroné (je n'y peut rien, aucun moyen de le tester). Je voudrais pouvoir tester le state de l'image pour aussi mettre une image par défault si mon link est erroné et donne une image avec un X rouge.

    Vous connaissez une solution?

    Merci beaucoup.
     
  2. screuscreu
    screuscreu WRInaute impliqué
    Inscrit:
    14 Janvier 2008
    Messages:
    687
    J'aime reçus:
    0
  3. mod12
    mod12 Nouveau WRInaute
    Inscrit:
    8 Décembre 2008
    Messages:
    6
    J'aime reçus:
    0
    Mon lien est bel et bien généré en PHP, mais il n'est pas sur mon serveur.
    Il pointe vers un site distant, donc je ne crois pas que le file_exist peut s'appliquer.

    Je me trompe peut-être?
     
  4. RiPSO
    RiPSO WRInaute impliqué
    Inscrit:
    5 Octobre 2007
    Messages:
    948
    J'aime reçus:
    0
    t'as essayé avec fopen?
     
  5. screuscreu
    screuscreu WRInaute impliqué
    Inscrit:
    14 Janvier 2008
    Messages:
    687
    J'aime reçus:
    0
    Tu as essayé au moins ?

    Après une lecture rapide de la doc, les devraient marcher

    merci de nous dire quelle solution tu as appliqué et marquer le sujet [Résolu] !
     
  6. RiPSO
    RiPSO WRInaute impliqué
    Inscrit:
    5 Octobre 2007
    Messages:
    948
    J'aime reçus:
    0
    par contre, de mémoire, pour le fopen il faut configurer le allow url fopen à ON dans le php.ini
     
  7. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 643
    J'aime reçus:
    81
    fopen est parfait pour verifier l'existance de fichiers sur des serveurs distants:

    Code:
    <?php
    
    function check_fichier_existe($nomfile) {
    
           $fp = @fopen($nomfile);
           if(!$fp) return false;
           else {
                fclose($fp);
                return true;}
           }
    
    ?>
     
  8. NxtGen
    NxtGen WRInaute impliqué
    Inscrit:
    24 Octobre 2006
    Messages:
    563
    J'aime reçus:
    0
  9. mod12
    mod12 Nouveau WRInaute
    Inscrit:
    8 Décembre 2008
    Messages:
    6
    J'aime reçus:
    0
    NxtGen u Got it.

    Merci tout le monde quand même pour votre aide.

    Le fOpen, marchait en local (avec fOpen ON et display_errors (On ou off))
    Par contre sur mon serveur Hostpapa il ne fonctionnait pas (fOpen ON et display_errors off).
    Je ne vois pas pourquoi car mes deux configurations étaient donc semblables.


    Solution:

    Code:
    $info = print_r(get_headers($imgUrl), true);
    $pos = strpos($info, "404");
    	
    if(strlen($pos) > 0) {
           echo "<img src='images/noimg.jpg' />";
    }else{
           echo "<img src='".$imgUrl."' /> "; 
    }
    *Il est bien important de mettre print_r à true sinon on ne peut pas storer l'info dans la variable $info il print directement.
    Thx guys, beaucoup de réponses en peu de temps :wink:

    edit: ah by the way, nop file_exist ne fonctionnait pas non plus. ^^
     
  10. NxtGen
    NxtGen WRInaute impliqué
    Inscrit:
    24 Octobre 2006
    Messages:
    563
    J'aime reçus:
    0
    Je comprend pas trop l'utilisation de print_r() ici...
    En reprenant ton code, j'aurais fais un truc comme ca moi :

    Code:
    $info = get_headers($url);
    if ( eregi('404', $info[0]) ) {
           echo "<img src='images/noimg.jpg' />";
           }
    else {
           echo "<img src='".$imgUrl."' /> "; 
           }
    Parce que la le risque avec ton code, c'est que si il y a "404" affiché quelque part dans le resultat de get_headers(), Content-Length: 404 par exemple, ce qui n'est pas impossible, ca va afficher l'image noimg.jpg alors que l'image sur le serveur distant existe peut etre quand meme, tu vois ce que je veux dire ?

    En utilisant $info[0], qui d'apres php.net retourne simplement le status de la page (200, 404, etc), tu limite vachement le risque d'erreur ;)
     
  11. mod12
    mod12 Nouveau WRInaute
    Inscrit:
    8 Décembre 2008
    Messages:
    6
    J'aime reçus:
    0
    Ah right!

    Thx pour le Tip, c'est pas faux.
    J'allume pu ben ben après une journée de code.
     
  12. RiPSO
    RiPSO WRInaute impliqué
    Inscrit:
    5 Octobre 2007
    Messages:
    948
    J'aime reçus:
    0
    T'as vérifié ton allow_url_fopen dans le php.ini?
     
  13. mod12
    mod12 Nouveau WRInaute
    Inscrit:
    8 Décembre 2008
    Messages:
    6
    J'aime reçus:
    0
    yepyep
    du moins c'est ce que le support guy de hostpapa m'a dit.
     
  14. RiPSO
    RiPSO WRInaute impliqué
    Inscrit:
    5 Octobre 2007
    Messages:
    948
    J'aime reçus:
    0
    euh... :? ?? je ne comprend rien à ce que tu dis :?

    [edit] AAAhhhhhhhh!!! hostpapa c'est un hebergeur!!! :lol:
     
  15. mod12
    mod12 Nouveau WRInaute
    Inscrit:
    8 Décembre 2008
    Messages:
    6
    J'aime reçus:
    0
    :roll:
    J'aurais peut-être du le mentionner :p

    D'ailleurs, 1 an que je suis avec eux, et support et service impecable.
    Il font même mes backups de bd directement avec mysqldump en shell quand je leur demande xD
     
  16. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 643
    J'aime reçus:
    81
    tu as raison, get_headers() est ce qui il y a de plus portable.. meme curl peut ne pas etre actif.. fopen c'est rare mais ca arrive..

    Note: dans ton code tu utilises une fonction POSIX (eregi) mais elles sont dorenavant obsolètes et ne seront plus activées dés php6. il faut utiliser les PCRE.
     
  17. NxtGen
    NxtGen WRInaute impliqué
    Inscrit:
    24 Octobre 2006
    Messages:
    563
    J'aime reçus:
    0
    Quel serait le code à utiliser avec php6 alors ?
    parce que j'utilise assez fréquemment eregi moi :oops:
     
  18. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 643
    J'aime reçus:
    81
    Il faut prendre l'habitude d'utiliser des pcre

    Code:
    $info = get_headers($url);
    if ( preg_match("/404/", $info[0]) ) {
           echo "<img src='images/noimg.jpg' />";
           }
    else {
           echo "<img src='".$imgUrl."' /> ";
           }
     
  19. NxtGen
    NxtGen WRInaute impliqué
    Inscrit:
    24 Octobre 2006
    Messages:
    563
    J'aime reçus:
    0
    oké je te remercie, j'en prend note :)
     
Chargement...
Similar Threads - [Résolu] Connaître status Forum Date
[Résolu] Reconnaître un Doctype en PHP Développement d'un site Web ou d'une appli mobile 25 Juillet 2012
[Resolu] Connaitre la hauteur d'une div Développement d'un site Web ou d'une appli mobile 31 Mai 2008
[Résolu] Connaître l'histoire d'un nom de domaine ? Référencement Google 27 Mai 2007
Problème images en https (forum phpbb) [résolu] Développement d'un site Web ou d'une appli mobile 18 Novembre 2017
[Résolu] Redirection 301 FR vers EN sur Prestashop uniquement sur outils Google ? Problèmes de référencement spécifiques à vos sites 11 Septembre 2017
[résolu] Passage à HTTPS, comment tester une page ? Développement d'un site Web ou d'une appli mobile 7 Septembre 2017
[Résolu] Redirection d'une famille d'URL URL Rewriting et .htaccess 9 Mars 2017
[Résolu] Diaporama et SEO Débuter en référencement 17 Janvier 2017
[résolu]Redirection monsite.fr/index.html sur monsite.fr et seo URL Rewriting et .htaccess 16 Janvier 2017
[resolu]Publicité facebook lié au compte instagram Facebook 12 Décembre 2016
[résolu] Récupérer des valeurs issues de javascript pour les mettre en base MySQL Développement d'un site Web ou d'une appli mobile 18 Juillet 2016
[résolu] Faire une redirection sauf pour mon adresse IP URL Rewriting et .htaccess 15 Juin 2016
[Résolu] 2 descriptions pour une même url selon requête Crawl et indexation Google, sitemaps 1 Juin 2016
[résolu] Action onchange sur FORM/SELECT qui ne fonctionne qu'à la première action ?!? Développement d'un site Web ou d'une appli mobile 31 Mai 2016
[résolu] Sessions : lire le contenu alors qu'on ne sait pas comment il est nommé... Développement d'un site Web ou d'une appli mobile 25 Mai 2016
[résolu] Avoir un paramètre de session "dynamique" ? Développement d'un site Web ou d'une appli mobile 25 Mai 2016
[résolu] Hauteur de div selon état d'un bouton radio Développement d'un site Web ou d'une appli mobile 23 Mai 2016
[résolu] recupération de flux xml et erreur encodage des caractères Développement d'un site Web ou d'une appli mobile 27 Janvier 2016
[résolu] Carte Google Maps avec "zones de densité" Développement d'un site Web ou d'une appli mobile 5 Novembre 2015
Balise NoIndex ignorée par Google? [résolu] Débuter en référencement 13 Janvier 2015