Logo du forum
 

Forum TTH-News

| 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

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


Auteur
Sujet : Récupérer une image
Aquillon
Vétéran
Membre # 6518

 Avatar du membre
Lieu : Genève

Messages :
3749 (0.68 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 229)

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

 Avatar du membre
Lieu : Caen

Messages :
655 (0.13 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 : Genève

Messages :
3749 (0.68 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 : Lyon (NPDC dans l'âme)

Messages :
5997 (1.06 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... ;)
- Haut de page -
Aquillon
Vétéran
Membre # 6518

 Avatar du membre
Lieu : Genève

Messages :
3749 (0.68 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 : Lyon (NPDC dans l'âme)

Messages :
5997 (1.06 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... ;)
- Haut de page -
soulmanto
Codeur du forum
Membre # 5373

 Avatar du membre
Lieu : Lille

Messages :
13839 (2.48 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!" );
   
}



----------
Desktop : Core i7 2600 | Gigabyte GA-Z68MA-D2H-B3 | 8 Go DDR3 PC10600 | SSD UltraPlus 128 Go / HDD 500 Go / 1 To | Sapphire R9 280 3 Go | CoolerMaster RC690 | Windows 7
Asus MemoPad 10

Stromille powered !!!
- Haut de page -
finalspirit
Vétéran
Membre # 4199

 Avatar du membre
Lieu : Lyon (NPDC dans l'âme)

Messages :
5997 (1.06 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... ;)
- Haut de page -
Aquillon
Vétéran
Membre # 6518

 Avatar du membre
Lieu : Genève

Messages :
3749 (0.68 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-2010

Valid XHTML 1.0 Transitional

Page générée en 0.039 secondes