Débutant : soucis avec getimagesize

[Résolu]
Signaler
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2008
-
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2008
-
Bonjour,

je rencontre un soucis avec getimagesize.
je m'explique:
mon script récupère les propriétés Hauteur, largeure via getimagesize.
Pour l'image suivante, j'obtiens ce message d'erreur.
Warning:
getimagesize(http://bwf.m6im.eu.iogw.com/img.k484e4846b23b8/XX8fibb3dbh12b17baa/MyM6.frVideo.jpeg):
failed to open stream: HTTP request failed!

Mon soucis est principalement que mon script se bloque sur cette étape et fini par planter complètement :
Fatal error: Maximum execution time of 300 seconds exceeded

L'en-tête de l'image est:
ÿØÿà?�10;JFIF?�1;�1;??�1;?�1;??ÿþ?;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 87

Comment puis-je contourner le problème.
Ce que je souhaiterai c'est tout simplement que le script passe ça route et continu lorsqu'il est dans cette situation.
La récupération des attributs de l'image n'est que secondaire.

ma ligne de code est :
$aSize = getimagesize($UrlValide);

Comment puis-je articulé une sorte de condition en récupérant les valeures de <tt>E_WARNING et/ou de </tt><tt>E_NOTICE</tt><tt>?
Il semble que je devarai pouvoir utiliser le retour </tt><tt>FALSE</tt><tt> mais je n'y parviens pas.

Merci pour votre aide et vos suggestions.

</tt>Autodidacte, je ne demande qu'à apprendre... Merci de votre aide

9 réponses

Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
Salut ^^

Pour les fichiers distants sregarde sur php.net ;)

-> fopen(), file_get_contents() :p

<hr />Si ma reponse te convient, merci de l'accepter ! 
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
jojo738, lis la question avant de repondre stp...

M000004965, tu dois utiliser curl ou faire ca avec fsockopen. lire les headers, et voir si c'est un 404 ou un 200
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
salut

t'as ce message d'erreur :
failed to open stream: HTTP request failed!

ce qui veut dire que ton image n'existe pas...
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2008

Merci beaucoup pour cette info qui m'éclaire bien.

Je fait un éssai avec:
if (file_exists($UrlValide))
{
   $aSize = getimagesize($UrlValide);
   $imgWidth = $aSize[0];
   $imgHeight = $aSize[1];
   $imgType = $aSize[2];
}
et je clôture si tout est ok.

Autodidacte, je ne demande qu'à apprendre... Merci de votre aide
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2008

Excellent, un grand merci.

Autodidacte, je ne demande qu'à apprendre... Merci de votre aide
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2008

Oupsss, bonjour tout le monde…

Je relance ce post car en fait il s’avère que le problème n’est pas réglé, c’est même pire…

J’ai du louper quelque chose…

En fait maintenant mon script considère qu’aucune image n’existe.
Ci-dessous un exemple pour que vous puissiez recréer la situation :

Image : http://www.luds.net/images/header750_05.gif

Cette image fait partie d’une bannière donc elle existe réellement et n’est pas créée à la volée.

Mon code :

  $ImgExiste ='oui';
  $UrlValide = "http://www.luds.net/images/header750_05.gif";
  if (file_exists($UrlValide))
  {
     $aSize = getimagesize($UrlValide);
     $imgWidth = $aSize[0];
     $imgHeight = $aSize[1];
     $imgType = $aSize[2];
  }else{
       $imgWidth = 0;
       $imgHeight = 0;
       $imgType = 0;
       $ImgExiste ='non';
  }
        
  $bSize = getimagesize($UrlValide);
        
  echo ‘Image existante : ‘.$ImgExiste.'
';
  echo $aSize[3].'
';
  echo $bSize[3].'
';

Vous constaterez que ce code estime que l’image n’existe pas hors il me renvois les propriétés quand il n’y a pas de contrôle.

Qu’est ce que j’ai mal fait

D'avance merci pour vos conseils et suggestions

Autodidacte, je ne demande qu'à apprendre et comprendre... Merci de votre aide
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2008

Oki, à force de chercher et de creuser...

mon problème est très simple, file_exists ne permet pas de tester des fichiers distant !

Autodidacte, je ne demande qu'à apprendre... Merci de votre aide
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
Arf ^^ Lu trop vite, dsl ;)

<hr />Si ma reponse te convient, merci de l'accepter ! 
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2008

merci à vous,

j'utilise déjà curl et je me base sur les réponses http.
en fait mon script s'effectue dans une démarche qualité, il monitore des sites éditeurs de contenu pour web mobile.
je stock toutes les url et images en base et les requête une à une.
le soucis c'est que bon nombre d'éditeurs génèrent des images à la volée, les fichiers n'existent pas donc lorsque le script les requêtes, c'est mort.

j'ai contourné le problème en travaillant sur les balises hauteur – largeur présentes dans la réponse http retournée à curl. Ce n’est pas top mais je n’ai pas le choix, ma mission de presta se finie demain.
Je ne peux plus passer de temps sur le code.

En revanche je vais creuser vos suggestions à titre perso.

Je clôture ce post mais je vous ferai un retour à l’occase.

Encore merci pour votre aide et vos pistes.

Autodidacte, je ne demande qu'à apprendre... Merci de votre aide