File_exists et fichier distant

File_exists et fichier distant - PHP - Programmation

Marsh Posté le 05-10-2004 à 11:19:53    

Salut
 
ya til moyen de faire un file_exists sur un fichier distant comme une url ?

Reply

Marsh Posté le 05-10-2004 à 11:19:53   

Reply

Marsh Posté le 05-10-2004 à 11:20:49    

À mon avis, tout ce que tu peux savoir c'est si une URL est valide (avec fopen je suppose), mais tu ne peux pas savoir si un fichier existe vu qu'une URL ne représente pas spécialement un fichier physique...


Message édité par antp le 05-10-2004 à 11:21:09

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 05-10-2004 à 11:39:25    

oui tu peux, ya pas de fonction directe mais sur la doc du PHP dans la descritpion de la fonction is_file ou file_exists, je sais plus trop, ya le script d'une fonction "maison" qui le fait... c'est basé sur un fsockopen.
J'ai peut etre le bout de code dans une de mes pages, si je le retrouve je te le post ici.


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 05-10-2004 à 11:40:05    

ca serait cool merci

Reply

Marsh Posté le 05-10-2004 à 11:56:53    

Essaye ceci :
 

Citation :

if ($handle = fopen("http://example.com/fichier.txt", "r" ) {
        echo "Fichier existant" ;
        fclose $handle ;
} else {
        echo "Fichier inexistant" ;
}

Reply

Marsh Posté le 05-10-2004 à 12:11:47    

ca marche pas non plus

Reply

Marsh Posté le 05-10-2004 à 12:12:23    

URL existante [:aloy]
 
www.antp.be/software/fichier.txt
 
ta fonction dirait "fichier existant", or tu reçois ce qui est renvoyé par software.php et il n'y a aucun fichier.txt sur mon serveur :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 05-10-2004 à 13:43:57    

je retrouve plus le code chez moi, et dans les exemples de la doc PHP en ligne, il n'y ai plus... :(
 
Mais j'avais arreté de m'en servir paske c'est relativmeent lent...
 
exemple d'un code que j'utilise pour ce genre de bidouille:

Code :
  1. // paramétrage
  2. $path="http://www.XXXXXXXX.com/chaoslan/";
  3. $file="XXXX.php";
  4. $url=$path.$file;
  5. // utilisation du @ pour ne pas avoir de message d'erreur
  6. @ $chaos=fopen($url,"r" );
  7. @ $info_chaos=fgets($chaos, 4096);
  8. @ fclose($chaos);
  9. if (strlen($info_chaos)>0) //fichier présent et non-vide
  10. {
  11.  $info_chaos=explode('<br>', $info_chaos);
  12.  $equipe=$info_chaos[0];
  13.  $equipe=str_replace('equipes', 'équipes', $equipe);
  14.  $coach=$info_chaos[1];
  15.  $match=$info_chaos[2];
  16.  $match=str_replace('joues', 'joués', $match);
  17.  $S_phrase=$equipe.', <br>'.$coach.', <br>'.$match.'.';
  18. }
  19. else // fichier absent ou vide
  20. {
  21.  $S_phrase='Stats Chaos-Lan indsiponibles.';
  22. }


je sais c'est pas propre, je n'empeche pas l'erreur, je me contente de ne pas l'afficher et de réagir en conséquence...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 13-03-2005 à 13:40:37    

merci bien,  ta bidouille me sert bien (pour verifier l'existence d'une image entre autre , avant de faire un getimagesize....)
 
A+

Reply

Marsh Posté le 16-06-2013 à 15:14:24    

salut,
 
je sais, ça date, mais une fonction qui analyse le header HTTP peut aussi être une solution :

Code :
  1. function img_exists($url) {
  2.   $headers = get_headers($url, 1);
  3.   if(preg_match('/404/', $headers[0])) {
  4.     return false;
  5.   } else {
  6.     return true;
  7.   }
  8. }


 
En gros, si le header http envoie une erreur 404, c'est que le fichier n'existe pas.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed