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 :

File_get_content timeout alors que la page existe


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 27
    Points : 16
    Points
    16
    Par défaut File_get_content timeout alors que la page existe
    Bonjour à toutes et à tous,

    Dans un de mes scripts php, je fais appel à la fonction file_get_contents mais me voila confronté à un problème.

    Cette fonction bug avec certaines url et atteint le timeout, error.

    Pourtant j'ai beau vérifier l'url avec mon navigateur, elle s'affiche en quelques secondes donc elle existe alors pour éviter ce soucis, je fais refresh mon script qui bug et donc quand la fonction retourne un timeout, elle se recharge quelques secondes après pour forcer le file_get_contents.

    Au bout de 10 minutes de refresh (ça dépend), la fonction file_get_contents parvient à charger l'url je ne sais pas comment et donc exécute la suite du script sans soucis mais je voudrais savoir si quelqu'un sait pourquoi une url qui existe retourne un timeout avec file_get_contents à 80% (environ) ?

    Merci de votre aide car j'aurais grandement besoin que mon script marche à chaque fois car pour analyser automatiquement quelques milliers d'url, je veux pas passer 3 mois^^

    Bonne continuation.

  2. #2
    Membre confirmé Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Points : 531
    Points
    531
    Par défaut
    bonsoir,

    As tu essayé de modifier max_execution_time ?

    Gillou

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 27
    Points : 16
    Points
    16
    Par défaut Réponse à LeGilou
    Voici mon script:

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <meta http-equiv="refresh" content="3; url='recup.php'" />
     
    // cette meta sert a forcer la lecture de l'url en cas de bug
     
     
    <?php
    set_time_limit(15);
     
    // durée du script descendue à 15 sec pour refresh plus vite quand file_get_contents bug
     
    require_once('Connections/gdc.php');
    mysql_select_db($database_gdc, $gdc);
     
    $requete4 = "SELECT * FROM url limit 1";
    $requete5 = mysql_query($requete4);
    $requete6 = mysql_fetch_array($requete5);
     
    $url_site = $requete6['url'];
     
    // on récupère l'url dans la base mysql
     
    $url=@file_get_contents($url_site);
     
    // le @ sert à éviter d'afficher les erreurs
     
    ?>
    Voila si cela peut vous éclaircir.

  4. #4
    Membre confirmé Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Points : 531
    Points
    531
    Par défaut
    Ca devrait fonctionner.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    require_once('Connections/gdc.php');
    mysql_select_db($database_gdc, $gdc);
     
    $sql= "SELECT url FROM url";
    $qry = mysql_query($requete4);
     
    $url_site = mysql_query($qry, 0, 'url');
    $url=file_get_contents($url_site);
     
    ?>
    Si tu fais juste ca, quel est le message d'erreur ?
    Par exemple, quelle URL plante ?

    Gillou

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 27
    Points : 16
    Points
    16
    Par défaut Réponse script
    Il me retourne un timeout.

    Quelques url passent, au bout d'un moment ça bloque mais ça peut bloquer à la première url.

    Voici un exemple des url que je demande dans la fonction file_get_contents et qui peuvent bloquer mais aussi s'executer normalement:

    http://www.exemple.com/view-content/test-hello_628.html

    J'ai testé l'url de google: http://www.google.fr
    Il n'y a eu aucun plantage sur 50 file_get_contents.

    L'erreur peut venir du serveur auquel je demande les pages car la plupart sont des serveurs basés aux États-Unis ?

    PS: Tout d'un coup le script a pu récupérée 94 pages alors qu'avant il bloquait sur la plupart des url, j'en déduit que ce bug ne se situe pas sur les url mais plutôt du côté serveur ou mon pc.

  6. #6
    Membre confirmé Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Points : 531
    Points
    531
    Par défaut
    je ne sais pas si il y a un rapport, mais il y a une redirection sur le lien http://www.exemple.com/view-content/test-hello_628.html

    Gillou

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 27
    Points : 16
    Points
    16
    Par défaut Réponse
    Désolé mais l'url que je t'ai donné est un exemple et ce n'est en aucun cas une url que je veux récupérer, je ne fournis pas d'url réelle tout simplement.

    Si tu veux je peux t'en fournir une liste pour que tu puisses tester le script en local chez toi et voir si ça bloque sur quelques unes ?

  8. #8
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    LeGilou > c'est une URL bidon
    Et pas très malin de la part loup-rouge car si on te demande une url c'est pour la vérifier pas pour que tu nous donnes la syntaxe uniquement.
    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 27
    Points : 16
    Points
    16
    Par défaut Ok
    C'était pour ne pas avoir d'ennui ensuite, je fournis donc une url sur laquelle file_get_contents bloque:

    Url

    *DELETED*

    Voila un script tout bête qui bloque chez moi avec cette url pourtant elle existe (au bout du 20eme refresh j'ai pu récupérer la page avec file_get_contents):

    <?php
    $url=file_get_contents("deleted");
    if ($url == false) {
    echo "no";
    }
    ?>

    PS: erreur retournée à 90% des tests:
    Fatal error: Maximum execution time of 30 seconds exceeded in test.php on line 2

  10. #10
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Je viens de tester en faisant une boucle d'une cinquantaine de requête et elle passe toute, c'est instantané tout est OK.
    Donc le problème vient de toi...
    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 27
    Points : 16
    Points
    16
    Par défaut Réponse: ok
    Ok merci de l'info, ça ne peut venir que de ma connexion alors puisque tout le reste fonctionne correctement. Je pense pas que ça vienne d'ailleurs, juste pour vérifier, tu as quel version de php ?

  12. #12
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Ca ne peut venir de PHP puisque file_get_contents() est supportée dans la version PHP 4 >= 4.3.0, PHP 5
    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 27
    Points : 16
    Points
    16
    Par défaut Ok
    Pas grave je veux juste savoir la version de php chez toi c'est juste pour en être sûre, si on a pas la même version je vais télécharger la tienne et tester le script. Je fais toutes les éventualités.

    Merci

  14. #14
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    PHP 5.2.6
    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 27
    Points : 16
    Points
    16
    Par défaut Corrigé
    Bonsoir,

    Après avoir fouillé mon pc j'ai remarqué que mon pare feu coupait la connexion à internet après une certaine période d'absence ce qui bloquait par conséquent l'execution du file_get_contents.

    Il m'a juste fallu désactivé celui-ci pour que tout marche correctement.

    Merci de votre aide: Résolu

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

Discussions similaires

  1. page qui existe alors que var_dump($page) : length=0
    Par laurentSc dans le forum Langage
    Réponses: 4
    Dernier message: 24/12/2014, 03h49
  2. [MySQL] [UTF-8] Pourquoi utiliser utf8_encode() alors que la page web et la DB sont en utf8 ?
    Par Tchupacabra dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 25/02/2008, 15h11
  3. [MySQL] réponse vide alors que le champs existe dans la table, sans retour d'erreur
    Par ben_skywalker dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 15/02/2007, 14h20
  4. Net:HTTP : timeout alors que le serveur répond
    Par iubito dans le forum Modules
    Réponses: 3
    Dernier message: 25/08/2006, 09h36
  5. [VBA Access] Champ texte null alors que l'objet existe bien.
    Par Caroline1 dans le forum VBA Access
    Réponses: 9
    Dernier message: 28/03/2006, 17h31

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