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 :

S'assurer qu'une page externe est bien téléchargée


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    sans
    Inscrit en
    Mars 2020
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2020
    Messages : 182
    Points : 117
    Points
    117
    Par défaut S'assurer qu'une page externe est bien téléchargée
    Bonjour

    J utilise ce code pour charger une page externe à mon site dans une variable : ($link étant l url)
    Le pb est que parfois, en raison du délai de réponse, la page ne se charge pas et ça passe malgré tout à la suite...

    Je ne peux pas le reproduire à volonté ce comportement d'où ma question étant donné que je n ai aucune erreur mais un "Warning" d affiché je ne sais pas s il est possible d utiliser le try/catch.

    j aimerai pouvoir mettre dans une bdd toutes les urls qui ne sont pas chargées pour, à la fin du script, les charger à nouveau...

    Quelle serait la façon la plus pertinente de proceder ?

    Merci pour votre aide

  2. #2
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    Bonjour,

    Je ne suis pas sur que tu puisses catcher l'exception car à ça semble être une erreur renvoyée et non une exception (après tu peux essayer, ça ne mange pas de pain ).
    En regardant la doc de la fonction, elle renvoit false lorsqu'une erreur survient donc tu peux faire quelque chose dans ce style :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $page = file($link);
    if(!$page) {
    // enregistrement en bdd de l'url qui n'a pas fonctionnée
    }

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 241
    Points
    20 241
    Par défaut
    2 solutions :

    Soit tu masque l'erreur et tu vérifie le retour de ta fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $page = @file($link);
    if(empty($page)) {
    // enregistrement en bdd de l'url qui n'a pas fonctionnée
    }
    Soit tu redéfini le gestionnaire d'erreur pour lancer une exception et la gérer toi même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    set_error_handler(
        function ($severity, $message, $file, $line) {
            throw new ErrorException($message, $severity, $severity, $file, $line);
        }
    );
     
    try {
        $page = file($link);
        // Faire quelque chose avec $page
    }
    catch (Exception $e) {
        echo $e->getMessage();
        // Gérer l'erreur
    }
     
    restore_error_handler();

  4. #4
    Membre régulier
    Homme Profil pro
    sans
    Inscrit en
    Mars 2020
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2020
    Messages : 182
    Points : 117
    Points
    117
    Par défaut
    Merci à vous pour ces réponses

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/10/2013, 17h39
  2. Détecter si une page Ie est lancer sur le poste
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/08/2006, 14h46
  3. Détecter qu'une page HTML est ouverte dans une frame
    Par Pigoulou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/01/2006, 14h07
  4. [XHTML11] Comment insérer une page externe dans une page ?
    Par Invité dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 17/03/2005, 19h43
  5. Comment savoir si une impression s'est bien déroulé?
    Par Cyrilh7 dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/11/2003, 20h49

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