Erreur file_get_contents

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Erreur file_get_contents

Re: Erreur file_get_contents

par Zahnzao » 22 avr. 2012, 21:09

Non non, ce que je voulais dire, c'est que la fonction renvoie toujours false même la ou file_get_contents renvoyait true.

Le coup du @ fonctionne très bien, même si c'est pas recommandé, je pense que dans ce contexte ce n'est pas trop grave, je ne suis pas du genre à en placer partout pour éviter les erreurs. J'utilise le $check uniquement pour vérifier la présence d'une page.

Re: Erreur file_get_contents

par xTG » 22 avr. 2012, 18:58

Tu parles d'erreur 404, donc elle fonctionne très bien la fonction non ?
file_exists() renvoie aussi un warning en plus de renvoyer false en cas de fichier non trouvé.

Re: Erreur file_get_contents

par Zahnzao » 22 avr. 2012, 16:15

Merci pour vos réponses.

file_exists ne fonctionne pas, j'avais déjà essayé ainsi que is_readable. Ca me dit toujours que le fichier n'existe pas.
function validate_tumblr($tumblr){
   if(file_exists('http://'.$tumblr.'.tumblr.com/api/read/json?num=1')){
      return true;
   }else{
      return false;
   }
}
Le @ devant la fonction fonctionne très bien mais je ne trouve rien à ce sujet, peux tu me dire ce que cela fait exactement ?

Merci

edit: Ok j'ai trouvé, ça empêche simplement le message d'erreur de s'afficher. Dans mon cas, vu que cette fonction ne sert qu'a tester l'existence du fichier ça me semble une bonne solution, mais je comprend que cela soit généralement déconseillé.

Sinon une idée du pourquoi file_exists ne fonctionne pas ? je ne pense pas avoir une erreur dans le code

Re: Erreur file_get_contents

par dix2 » 22 avr. 2012, 15:47

salut,

même si c'est pas trop conseillé, mettre un @ devant la fonction file_get_contents, ce qui donne :
function validate_tumblr($tumblr){
   $check = @file_get_contents('http://'.$tumblr.'.tumblr.com/api/read/json?num=1');
   return $check;
}
sinon tester avec file_exists comme l'a indiqué moogli

@+
dix2

Re: Erreur file_get_contents

par moogli » 22 avr. 2012, 15:25

Salut,

file_exists ?

@+

Erreur file_get_contents

par Zahnzao » 22 avr. 2012, 13:54

Bonjour, je crèe en local une petite application qui utilise l'api tumblr (http://www.tumblr.com/docs/en/api/v1)

j'ai une petite fonction très simple qui vérifie l'existence d'un blog.

Code : Tout sélectionner

function validate_tumblr($tumblr){ $check = file_get_contents('http://'.$tumblr.'.tumblr.com/api/read/json?num=1'); return $check; }
que j'apelle de cette facon:

Code : Tout sélectionner

if(!validate_tumblr($_POST['tumblr'])){ $message[]='Your tumblr blog doesn\'t exist.'; }else{ $tumblr=$_POST['tumblr']; }
d'après la doc, la fonction file_get_contents retorune le contenu de la page si elle existe et false si une erreur survient. Tout fonctionne a merveille, les valeurs sont bien renvoyée mais en cas de false l'erreur s'affiche et c'est très génant.
Warning: file_get_contents(http://hjhgjghjghjhjgjjjjjjggg.tumblr.c ... json?num=1) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\wamp\www\functions.php on line 15
Une idée pour éviter cela ?

Merci.