IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Comment tester si file_get_contents est false ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Par défaut Comment tester si file_get_contents est false ?
    Bonjour,

    voila je souhaite vérifier si j'ai bien une réponse dans l'url que je décode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = json_decode(file_get_contents('https://maps.googleapis.com/maps/api/geocode/json?address=92500,+France&key=MACLE'));
    Je ne parle pas du tableau de réponse JSON que j'ai grâce a google.. mais bien de la fonction file_get_contents.

    C'est à dire que si je change l'adresse volontairement en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = json_decode(file_get_contents('https://maps.NIMPORTEQUOIXXX.com/maps/api/geocode/json?address=92500,+France&key=MACLE'));
    Je veux avoir une réponse false !

    alors j'ai déjà consulté la doc et normalement c'est possible http://php.net/manual/fr/function.file-get-contents.php
    SOURCE DOC PHP :
    Retourne les données lues ou FALSE si une erreur survient.

    Avertissement
    Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Veuillez lire la section sur les booléens pour plus d'informations. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.
    voila le code pour vérifier si c'est false ou non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ($result === false) {
    	echo "ERREUR dans l'adresse url";
    	exit();
    } else {
    	echo "l'adresse est bonne";
    }
    Mais le problème c'est que si je met une url bidon j'ai toujours le message "l'adresse est bonne" + 2 messages d'erreurs

    Warning: file_get_contents(): in C:\wamp\www\pag\test.php on line 4
    Warning: file_get_contents(https://maps.FAUSSEURL.com/maps/api/...mp;key=MACLE): in C:\wamp\www\pag\test.php on line 4


    je vous remercie

  2. #2
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Salut,

    Pour éviter l'affichage du Warning, tu peux utiliser l'opérateur de contrôle d'erreur (symbole @).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $result=@file_get_contents('https://maps.NIMPORTEQUOIXXX.com/maps/api/geocode/json?address=92500,+France&key=MACLE');
    if($result!==false){
    	$result=json_decode($result);
    }else{
    	// Erreur
    }

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu as regardé le retour de la fonction dans ton test ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Par défaut
    Eric2a : je ne suis pas fan du @ comme solution de "camouflage" pas très propre.

    Sabotage : avec Var dump ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Par défaut
    une petite idée ? non même pas ?

Discussions similaires

  1. Comment tester si un champ est un nombre
    Par the kikouyou dans le forum Langage SQL
    Réponses: 13
    Dernier message: 17/07/2014, 14h57
  2. Comment tester si .val() est concrètement vide ?
    Par Mousshaker dans le forum jQuery
    Réponses: 15
    Dernier message: 26/03/2014, 15h13
  3. Comment tester si un repertoire est vide sous Linux
    Par chouchouappc dans le forum Linux
    Réponses: 3
    Dernier message: 24/02/2005, 12h03
  4. Comment tester qu'un objet String est bien initialisé
    Par Jones dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 17/09/2004, 11h29
  5. Comment tester si fichier est ouvert ?
    Par fusef dans le forum Langage
    Réponses: 7
    Dernier message: 11/08/2004, 18h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo