Aller au contenu

Afficher des images distantes, ou locales, sans ralentir un site


nza2k

Sujets conseillés

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 !

Lien vers le commentaire
Partager sur d’autres sites

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+

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ta réponse.

Je n'ai encore jamais utilisé de cache... Mais il y a un début à tout :)

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" ?

Lien vers le commentaire
Partager sur d’autres sites

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

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é ^^ alors mes avis sont peut être faux...

Modifié par Nanane
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

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



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