Logo du forum
 

Forum TT-Hardware

| Inscription | | Recherche | | FAQ | | Accueil | | Liste des membres |
| Calendrier |
 
Vous n'êtes pas identifié! [Connexion] ou [Inscription] Forum » Programmation » [PHP] » Récupérer une image
Login Mot de passe

2 visiteurs sur ce topic (0 membre(s), 2 invité(s) )

Auteur
Sujet : Récupérer une image
Aquillon



 






Message du 25-02-2008 @ 12:58


Salut,
voilà, je débute plus ou moins en php et j'aimerai récupérer une image d'un site pour l'afficher sur celui que je dois faire. Seulement voilà, il s'agit d'une photo qui est régulièrement mise à jour.
voilà le site en question pour vous donner une idée : photo passionnante n'est-ce pas ?

Donc comme vous le voyez, il y a plusieurs horaires avec une photo correspondante, moi ce que je souhaite faire, c'est récupérer la dernière photo mise en ligne et je ne sais pas trop si c'est réalisable :sic:
A priori, les photos sont prises à horaire fixe tous les jours.

EDIT : Bon, j'ai ma petite idée finalement
Je prend l'heure courante et je décrémente les minutes jusqu'à ce que je tombe sur une url valide. Ça fait quelques tests à faire mais ça me parait jouable.


Plop !

J'en reviens ici pour un soucis vis à vis de ma petite fonction.
J'utilise la fonction file_get_contents($url) pour vérifier mon adresse seulement, dés qu'il tombe sur quelque chose d'incorrecte, il m'affiche un message d'erreur jusqu'à ce qu'il trouve la photo.
C'est pas très joli à voir donc je me demandais si vous ne connaissiez pas une méthode pour ne pas afficher ce message.
Il y a bien la configuration de php en ce qui concerne le développement en local avec wamp (j'ai décoché "display error") mais je ne suis pas sûr d'être en mesure de configurer le serveur sur lequel sera stocké mon truc.

[message édité le 27-02-2008 @ 13:18 Par Aquillon]

Pièces jointes
CLIC.png [Voir] [Lien direct vers ce fichier] (Taille : 42.96 Ko - Téléchargements 28)

- Haut de page -
Zéphyr



 






Message du 27-02-2008 @ 18:18

Aquillon a écrit



EDIT : Bon, j'ai ma petite idée finalement
Je prend l'heure courante et je décrémente les minutes jusqu'à ce que je tombe sur une url valide. Ça fait quelques tests à faire mais ça me parait jouable.[/s]



Idée de génie ! =)


Sinon tu récupères le résultat de ta fonction dans une variable ?

- Haut de page -
Aquillon



 






Message du 28-02-2008 @ 10:11

Non, je fais directement "if (file_get_contents($url))"
- Haut de page -
FinalSpirit



 






Message du 28-02-2008 @ 11:34

Pour ne pas afficher les erreur tu mets un @ devant la ligne qui pose l'erreur... par contre c'est pas très propre... après pour une solution plus propre j'en ai pas en tête...désolé.
- Haut de page -
Aquillon



 






Message du 28-02-2008 @ 12:46

Ho yeah ! ça marche !
Merci bien :)

Mais pourquoi dis tu que cela n'est pas très propre ?
- Haut de page -
FinalSpirit



 






Message du 28-02-2008 @ 15:06

Un code qui renvoie des erreurs n'est jamais très propre... il devrait n'afficher aucune erreur sur la page. A quoi ressemble cette erreur ? Je sais pas comment tu procède exactement dans ton script mais faut éviter les erreurs. C'est un Warning ou bien ? même si c'est moins important faut éviter d'avoir ces types de ligne qui apparaissent dans un script.
- Haut de page -
Soulmanto



 






Message du 29-02-2008 @ 9:43

Une petite fonction comme ça, c'est propre: :D

Code :


function remote_file_exists ($url)
{
   /*
   code retour erreur :
   1 : Hôte invalide
   2 : impossible de se connecter au site
   */
   
   $head = '';
   $url_p = parse_url ($url);
   
   if (isset ($url_p["host"])) {
      $host = $url_p["host"];
      
   } else {
      return 1;
      
   }
   
   if (isset ($url_p["path"])) {
      $path = $url_p["path"];
   
   } else {
      $path = '';
      
   }
   
   $fp = fsockopen ($host, 80, $errno, $errstr, 20);
   
   if (!$fp) {
      return 2;
   
   } else {
      $parse = parse_url($url);
      $host = $parse['host'];
   
      fputs($fp, "HEAD ".$url." HTTP/1.1\r\n" );
      fputs($fp, "HOST: ".$host."\r\n" );
      fputs($fp, "Connection: close\r\n\r\n" );
      
      $headers = '';
      
      while (!feof ($fp))
      {
         $headers .= fgets ($fp, 128);
         
      }
   }
   
   fclose ($fp);
   $arr_headers = explode("\n", $headers);
   $return = false;
   
   if (isset ($arr_headers[0])) {
      $return = strpos ($arr_headers[0], "404" ) === false;
      
   }
   
   return $return;
}



/* utilisation */
$url = "http://www.google.it/intl/it_it/images/logo.gif";
if (remote_file_exists ($url)) {
   print ($url . " file exists!" );

} else {
   print ($url . " file doesn't exist!" );
   
}



- Haut de page -
FinalSpirit



 






Message du 29-02-2008 @ 15:02

Voilà qui est fait :D

Bien joué Soul' !

- Haut de page -
Aquillon



 






Message du 03-03-2008 @ 8:33

:clap:
Ouaou ! Ba merci hein :gaf: Je vais tester ça :D
- Haut de page -

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2006

Valid XHTML 1.0 Transitional

Page générée en 0.117 secondes