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
Vétéran
Membre # 6518

 Avatar du membre
Lieu : Caen

Messages :
2980 (1.42 par jour)


Score :

Message du 25-02-2008 @ 12:58   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   


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 22)

- Haut de page -
Zéphyr
Master
Membre # 11215

 Avatar du membre
Lieu : Caen

Messages :
652 (0.37 par jour)


Score :

Message du 27-02-2008 @ 18:18   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

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 ?

----------
Les bretons sont des gens comme les autres et n'habitent pas très loin de la France. Les bretons sont nos amis, et nous devons les respecter comme des êtres humains.
- Haut de page -
Aquillon
Vétéran
Membre # 6518

 Avatar du membre
Lieu : Caen

Messages :
2980 (1.42 par jour)


Score :

Message du 28-02-2008 @ 10:11   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Non, je fais directement "if (file_get_contents($url))"
- Haut de page -
FinalSpirit
Vétéran
Membre # 4199

 Avatar du membre
Lieu : Pas de Calais

Messages :
5625 (2.49 par jour)


Score :

Message du 28-02-2008 @ 11:34   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

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é.
----------
La vie n'est qu'un jeu que l'on programme au hasard... ;)
Admis en Chef de Projet en alternance !
Asus P5K Pro/Intel E8400/2*1 Go Ballistix/POV GeForce 8800 GT/Seasonic M12/Antec P180B
Portable Acer 5630
- Haut de page -
Aquillon
Vétéran
Membre # 6518

 Avatar du membre
Lieu : Caen

Messages :
2980 (1.42 par jour)


Score :

Message du 28-02-2008 @ 12:46   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Ho yeah ! ça marche !
Merci bien :)

Mais pourquoi dis tu que cela n'est pas très propre ?
- Haut de page -
FinalSpirit
Vétéran
Membre # 4199

 Avatar du membre
Lieu : Pas de Calais

Messages :
5625 (2.49 par jour)


Score :

Message du 28-02-2008 @ 15:06   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

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.
----------
La vie n'est qu'un jeu que l'on programme au hasard... ;)
Admis en Chef de Projet en alternance !
Asus P5K Pro/Intel E8400/2*1 Go Ballistix/POV GeForce 8800 GT/Seasonic M12/Antec P180B
Portable Acer 5630
- Haut de page -
Soulmanto
Codeur du forum
Membre # 5373

 Avatar du membre
Lieu : Lille

Messages :
12731 (5.86 par jour)


Score :

Message du 29-02-2008 @ 9:43   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

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!" );
   
}



----------
Core 2 Duo E6750 2,66 GHz | Asrock Conroe 1333 D667 | 2 Go DDR-II 667 | GeForce 8800 GT 512 Mo | Acer X192W (qui marche bien, sisi spook' :p )
Dell Inspiron 6400 | Core2Duo T5500 | 1 Go DDR-II | ATI X1300 128 Mo

Enfin!! 300 au bowling sur Wii Sports :classe:
- Haut de page -
FinalSpirit
Vétéran
Membre # 4199

 Avatar du membre
Lieu : Pas de Calais

Messages :
5625 (2.49 par jour)


Score :

Message du 29-02-2008 @ 15:02   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Voilà qui est fait :D

Bien joué Soul' !

----------
La vie n'est qu'un jeu que l'on programme au hasard... ;)
Admis en Chef de Projet en alternance !
Asus P5K Pro/Intel E8400/2*1 Go Ballistix/POV GeForce 8800 GT/Seasonic M12/Antec P180B
Portable Acer 5630
- Haut de page -
Aquillon
Vétéran
Membre # 6518

 Avatar du membre
Lieu : Caen

Messages :
2980 (1.42 par jour)


Score :

Message du 03-03-2008 @ 8:33   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

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


Aller dans le forum :  

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.091 secondes