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 :

Prévoir une erreur de connexion suite à l'utilisation de file_get_contents()


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 53
    Points : 40
    Points
    40
    Par défaut Prévoir une erreur de connexion suite à l'utilisation de file_get_contents()
    Bonjour,

    J'utilise actuellement la fonction file_get_contents() pour récupérer puis traiter le code source d'un autre site web.
    J'aimerais prévoir une éventuelle erreur de connexion, et je cherche donc un moyen pour "tester" la connexion au site.
    Connaissez-vous un moyen simple de le faire ?

    Merci d'avance

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    pour parser du HTML c'est DOMDocument, et faut avoir l'autorisation du site pour faire du data mining

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 53
    Points : 40
    Points
    40
    Par défaut
    Bof, c'est un petit programme en local pour m'amuser.
    En revanche je n'ai pas trop compris ta réponse...

    Je précise ma question :
    En cas de connexion ratée, par exemple si je perds mon réseau wifi (possible puisque le site est hébergé en local), j'aimerais ne pas recevoir les erreur PHP me disant que file_get_contents() a fail sa connexion... J'aimerais donc pourvoir les empêcher, ou tester la connexion avant de la mettre effectivement en oeuvre.

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    doit bien y avoir des choses la dedans

    http://www.php.net/manual/en/book.stream.php

    http://www.php.net/manual/fr/ref.stream.php

    c'est la première chose qui me viens en tête, si tu a le temps regarde je suis curieux

    et à regarder http://www.php.net/manual/fr/functio...t-contents.php

    stream_get_contents() est identique à file_get_contents(), sauf qu'elle opère sur un pointeur de fichier déjà ouvert et retourne le contenu restant, allant jusqu'à maxlength octets, dans une chaîne et commençant à la position offset.

    donc si tu as ouvert une connexion tu peu la récupérer, normalement

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    le code source c'est du HTML ?

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 53
    Points : 40
    Points
    40
    Par défaut
    Oui, c'est du HTML x)
    J'ai regardé un peu, finalement j'ai trouvé une solution assez simple, consistant à rendre "muette" la fonction en ajoutant un "@" devant, et en gérant une éventuelle erreur par la suite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $codeSource = @file_get_contents($url);
            If (!empty($codeSource)) {
     
                $sourceAvant = explode($chaineAvant, $codeSource);
                $sourceApres = explode($chaineApres, $sourceAvant[1]);
     
                } else {
                    return "Erreur";
                }
    Merci de votre aide =)

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    si c'est du HTML du doits parser ça avec DOMDocument

  8. #8
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    @stealth35, tu l'as placé deux fois dans la même discussion : de plus en plus fort

    As-tu pensé à modifier ta signature ou même ton avatar ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2012] Une erreur de dépassement arithmétique en utilisant la fonction EXP
    Par AJ_ing dans le forum Développement
    Réponses: 4
    Dernier message: 15/05/2014, 15h17
  2. [2005] Prévenir une erreur de connexion
    Par shahid.alimamod dans le forum SSIS
    Réponses: 4
    Dernier message: 03/04/2012, 13h56
  3. [EJB3] Comment catcher une erreur de connexion à la base de données
    Par chriscoolletoubibe dans le forum Java EE
    Réponses: 5
    Dernier message: 03/01/2011, 10h59
  4. Erreur de connexion sur une base SQLite en utilisant les exemples
    Par COGAN dans le forum Bases de données
    Réponses: 5
    Dernier message: 24/08/2010, 15h48
  5. [C#/Sql Server] Pourquoi ai-je une erreur de connexion ?
    Par paradeofphp dans le forum Accès aux données
    Réponses: 3
    Dernier message: 03/08/2006, 22h53

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