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

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


mod12
Nouveau WRInaute
 
Messages: 6
Inscription: Lun Déc 08, 2008 6:13

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

Message le Lun Déc 08, 2008 6:16

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.
Dernière édition par mod12 le Mar Déc 09, 2008 3:53, édité 1 fois.


screuscreu
WRInaute passionné
WRInaute passionné
 
Messages: 924
Inscription: Lun Jan 14, 2008 12:14

Message le Lun Déc 08, 2008 7:10

Je suppose que ton src est généré en PHP ...
Pourquoi de pas essayer un FILE_EXIST ?

http://us.php.net/function.file-exists


mod12
Nouveau WRInaute
 
Messages: 6
Inscription: Lun Déc 08, 2008 6:13

Message le Lun Déc 08, 2008 14:12

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?


RiPSO
WRInaute accro
WRInaute accro
 
Messages: 1464
Inscription: Jeu Oct 04, 2007 23:40

Message le Lun Déc 08, 2008 15:49

t'as essayé avec fopen?


screuscreu
WRInaute passionné
WRInaute passionné
 
Messages: 924
Inscription: Lun Jan 14, 2008 12:14

Message le Lun Déc 08, 2008 18:05

mod12 a écrit: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?


Tu as essayé au moins ?

RiPSO a écrit:t'as essayé avec fopen?


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] !


RiPSO
WRInaute accro
WRInaute accro
 
Messages: 1464
Inscription: Jeu Oct 04, 2007 23:40

Message le Lun Déc 08, 2008 18:09

par contre, de mémoire, pour le fopen il faut configurer le allow url fopen à ON dans le php.ini


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3324
Inscription: Mar Nov 16, 2004 18:27

Message le Lun Déc 08, 2008 23:32

fopen est parfait pour verifier l'existance de fichiers sur des serveurs distants:

Code: Tout sélectionner
<?php

function check_fichier_existe($nomfile) {

       $fp = @fopen($nomfile);
       if(!$fp) return false;
       else {
            fclose($fp);
            return true;}
       }

?>


NxtGen
WRInaute passionné
WRInaute passionné
 
Messages: 730
Inscription: Mar Oct 24, 2006 4:35

Message le Mar Déc 09, 2008 3:16

tu peux aussi récuperer les headers de l'url générée, si c'est 404, c'est que c'est pas bon ;)

Avec php5 : http://fr3.php.net/get_headers
Sinon : http://www.webrankinfo.com/forums/viewtopic_23366.htm


mod12
Nouveau WRInaute
 
Messages: 6
Inscription: Lun Déc 08, 2008 6:13

Message le Mar Déc 09, 2008 3:53

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: Tout sélectionner
$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. ^^


NxtGen
WRInaute passionné
WRInaute passionné
 
Messages: 730
Inscription: Mar Oct 24, 2006 4:35

Message le Mar Déc 09, 2008 4:11

Je comprend pas trop l'utilisation de print_r() ici...
En reprenant ton code, j'aurais fais un truc comme ca moi :

Code: Tout sélectionner
$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 ;)


mod12
Nouveau WRInaute
 
Messages: 6
Inscription: Lun Déc 08, 2008 6:13

Message le Mar Déc 09, 2008 4:23

Ah right!

Thx pour le Tip, c'est pas faux.
J'allume pu ben ben après une journée de code.


RiPSO
WRInaute accro
WRInaute accro
 
Messages: 1464
Inscription: Jeu Oct 04, 2007 23:40

Message le Mar Déc 09, 2008 5:16

mod12 a écrit: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.



T'as vérifié ton allow_url_fopen dans le php.ini?


mod12
Nouveau WRInaute
 
Messages: 6
Inscription: Lun Déc 08, 2008 6:13

Message le Mar Déc 09, 2008 5:22

yepyep
du moins c'est ce que le support guy de hostpapa m'a dit.


RiPSO
WRInaute accro
WRInaute accro
 
Messages: 1464
Inscription: Jeu Oct 04, 2007 23:40

Message le Mar Déc 09, 2008 5:23

euh... :? ?? je ne comprend rien à ce que tu dis :?

[edit] AAAhhhhhhhh!!! hostpapa c'est un hebergeur!!! :lol:


mod12
Nouveau WRInaute
 
Messages: 6
Inscription: Lun Déc 08, 2008 6:13

Message le Mar Déc 09, 2008 5:33

: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

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

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités