Jump to content

tester si une image est valide


davidc1

Recommended Posts

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.

Link to post
Share on other sites

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.

Edited by cyberlaura
Link to post
Share on other sites

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.

Link to post
Share on other sites

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...

Link to post
Share on other sites

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.

Link to post
Share on other sites

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. ;)

Link to post
Share on other sites

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. ;)

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...