Discussion:
Getimagesize, local ou distant
(trop ancien pour répondre)
Yttrium
2008-04-25 21:52:30 UTC
Permalink
Bonjour,

La fonction getImageSize() peut vraisemblablement être utilisée soit par
le biais d'une URL distante, soit par le biais d'un chemin d'accès local.
Ex :
getimagesize('/var/www/images/test.jpg')
ou
getimagesize('Loading Image...')

Dans l'hypothèse ou le getimagesize() est utilisé avec une URL pointant
vers le serveur hébergeant le script.

Une de ces deux méthodes est elle plus lente que l'autre , si oui pourquoi ?

Merci d'avance de vos avis.

Cordialement.

Yttrium
Olivier Miakinen
2008-04-25 22:48:01 UTC
Permalink
Post by Yttrium
La fonction getImageSize() peut vraisemblablement être utilisée soit par
le biais d'une URL distante, soit par le biais d'un chemin d'accès local.
getimagesize('/var/www/images/test.jpg')
ou
getimagesize('http://www.toto.com/images/test.jpg')
Oui, à condition que ce soit autorisé sur le serveur.
Post by Yttrium
Dans l'hypothèse ou le getimagesize() est utilisé avec une URL pointant
vers le serveur hébergeant le script.
Une de ces deux méthodes est elle plus lente que l'autre , si oui pourquoi ?
Je n'ai pas lu le code source en C correspondant aux deux accès, mais
mon avis est que l'algo est à peu près le suivant dans un cas puis dans
l'autre.


1) getimagesize('/var/www/images/test.jpg')

a) lire le fichier /var/www/images/test.jpg
b) récupérer les infos de l'image, dont la taille


2) getimagesize('http://www.toto.com/images/test.jpg')

a) faire une requête au DNS pour résoudre l'adresse www.toto.com
b) ouvrir une connexion à l'adresse IP correspondante
c) lui envoyer la requête GET /images/test.jpg
d) attendre la réponse
e) lire la réponse (dont le contenu du fichier)
f) récupérer les infos de l'image, dont la taille

2bis) Ce qui se passe sur le serveur web lors des étapes 2b à 2e

a) accepter la connexion
b) lire et interprêter la requête GET /images/test.jpg
c) lire le fichier /var/www/images/test.jpg
d) renvoyer la réponse (dont le contenu du fichier)


Donc, dans ton deuxième scénario, ce qui était l'étape « 1 a » est fait
en « 2bis c », ce qui était l'étape « 1 b » est fait en « 2 f », et tout
le reste est à faire en plus. À toi de voir si le surcroît de requêtes
internet et de consommation CPU te semble négligeable ou pas (mais la
réponse peut être oui).

Continuer la lecture sur narkive:
Loading...