Version complète: sur le forum Webmaster Hub : Afficher des images distantes, ou locales, sans ralentir un site
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
nza2k
Hello tout le monde,

Je cherche à rédiger une fonction php dont le rôle serait le suivant :

- Vérifier l'existence d'une image hébergée sur un serveur distant.
- Si l'image existe, afficher cette image sur mon site.
- Sinon, afficher une image par défaut (de type "image non disponible").

J'ai essayé en premier lieu de m'appuyer sur la fonction fopen().
Ca marche très bien la plupart du temps. Mais parfois, pour des raisons inconnues, le fopen() bloque l'execution du script, faute de réponse de l'image distante (il attend alors le time out php pour stopper son interrogation, c'est ce que j'ai compris...).

J'ai essayé ensuite de m'appuyer sur la fonction fsockopen(), en paramétrant un temps limite de 1 ou 2 secondes...
Ca ne marche pas, j'ai l'impression que des fichiers images (.gif ou .jpg) ne se prêtent pas bien à ce type d'interrogation et mon image par défaut (image non disponible) s'affiche constamment (ou quasi-constamment ?).
Par contre, mon script, n'est jamais bloqué dans son exécution...

Bref, peu importe la manière, voyez-vous une façon d'arriver à mes fins, sans prendre le risque de ralentir à l'excès le chargement de mes pages ?

Merci pour votre aide !
f_trt
Faire une système de cache avec ta première solution, j'imagine que tu n'as pas besoins pour chaque internaute de tester si
l'image existe mais le faire par exemple seulement toutes les 10 minutes pas exemple ou tous les 100 internaute.

A+
nza2k
Merci pour ta réponse.
Je n'ai encore jamais utilisé de cache... Mais il y a un début à tout smile.gif

Une question toutefois : que ça passe-t-il si le rafraichissement du cache intervient à un moment où les images (et le reste de la page) ne s'affichent pas (ou très lentement).
=> Le cache enregistre en mémoire du "vide" ?
Nanane
Je n'ai jamais joué avec les caches, mais que le serveur distant ne reponde pas parce qu'il est lent, ou parce qu'il n'existe plus, n'est pas "testable"; enfin je suppose happy.gif

Donc ton cache, si j'a jusque la bien écouté mes cours, se mettra a jour et indiquera que l'image n'existe plus, quelle que soit la raison du silence de la part du site distant.
Mais je suis encore jeune et inexpérimenté happy.gif alors mes avis sont peut être faux...
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.