Aller au contenu

tester si une image est valide


Sujets conseillés

Posté

Bonjour,

Je souhaiterais pouvoir tester si une image est valide avant de l'affichersur une page. Certains liens ne sont pas bons...

voir ici : -http://c-cher.com/auction/index.php?q=essai&idb=0

j'ai essayé avec getimagesize, mais ça ralentit vraiment le moteur (je dois afficher 30 images par page). quelle serait la manière la plus adéquate ?

je ne sais pas si c'est en php ou javascript,que la solution réside.

merci par avance,

David.

Posté (modifié)

Bonjour,

personnellement, j'utilise file_exists. Mais je ne connais pas sa rapidité, je n'affiche jamais énormément de photos sur une page...

Et il est vrai que ça me dit juste si elle existe, pas si elle est valide.

Modifié par cyberlaura
Posté

file_exists c'est pour ce qui est en local je crois.

j'ai essayé avec :

<?php
function url_exists($url)
{
$handle = _AT_fopen($url, "r");
if ($handle === false)
return false;
fclose($handle);
return true;
}
?>

ça pénalise trop l'affichage.

Posté

A mon avis, si vraiment c'est trop pénalisant, il faut peut-être penser à faire ce traitement soit de nuit ( en parcourant tous les articles et en mettant à jour un champ de la table - imageValide ), soit lors de l'insertion/modification dans la table - cette deuxième solution me semblant plus valable au vu du nombre d'articles...

Posté

Oui cyberlaura, j'ai pensé à ça et je vais faire cette modif, mais si l'image n'est pas présente sur le serveur au moment de l'affichage de la recherche ça n'empêchera pas l'affichage de la petite croix rouge. donc ça ne fonctionnera pas dans 100% des cas.

Une autre solution consisterait à stocker en local les images.

Posté

un cron qui tourne chaque nuit (3h du matin il n'y a quasiement personne en france) pour vérifier et mettre à jour la base de données.

Posté

Bonjour,

En dehors de fopen il faudrait utiliser les librairies curl ou pear afin de jouer uniquement avec les entêtes, je n'ai pas encore testé mais à mon avis ca risquerait de demander moins de ressources. ;)

Posté

Ce n'est peut être pas un problème de ressources mais plutôt d'attente du serveur distant car les images sont testées les unes après les autres.

Posté

Sauf que le fopen ouvre réellement le fichier et le stocke dans un répertoire temporaire, il me semble avoir lu sur une article sur HTTP_HEADERS (classe PEAR) qui soulignait le fait que l'on peut simplement tester la réponse sans stocker le fichier. J'avoue avoir parcouru vite fais l'article en question et je suis incapable de remettre la main dessus. Mais c'est pour cela que je t'en parle... je voulais faire des tests mais je n'ai pas eu le temps, donc je suis également intéressé par les résultats de ces tests si tu as le temps de tester. ;)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...