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 :

Fonction file() trop lente


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 99
    Points : 60
    Points
    60
    Par défaut Fonction file() trop lente
    Bonjour,

    Je cherche à indexer le contenu d'une page HTML d'un site.

    Je récupère le code html grâce à ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $html = implode('', file($url));
    Le problème c'est que par moment il arrive que le script bloque sur cette ligne pendant plusieurs minutes et parfois sort un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file(): HTTP request failed!
    alors que la page est accessible et rapidement.

    Savez vous d'où viennent ces lenteurs et si il y a un moyen d'arreter la recuperation du code source apres 10s sans reponse par exemple ?

    Sinon existe t il un autre moyen pour recuperer le code source d'une page Web.

    Merci pour votre aide

  2. #2
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    Hello,

    erf... déjà le implode( file() ), c'est plutot crade comme méthode... charger entièrement un fichier en mémoire, sous forme de tableau, pour ensuite tout "recoller"...

    Si tu tiens vraiment à charger tout le contenu en mémoire, utilises file_get_contents().


    Sinon, l'idéal est d'utiliser un "vrai" client HTTP, qui gèrera entre autre les timeouts. Pour ça, le plus simple est certainement d'utiliser une classe tout prête (dans Pear il y a ça il me semble), ou encore d'utiliser une extension spécifique (au minimum Curl, voir pecl_http).

Discussions similaires

  1. Fonction Java trop lente
    Par haskouse dans le forum Général Java
    Réponses: 17
    Dernier message: 09/08/2011, 15h18
  2. Convolution trop lente...
    Par progfou dans le forum Traitement d'images
    Réponses: 6
    Dernier message: 05/08/2006, 11h44
  3. boucle while trop lente
    Par atouze dans le forum Access
    Réponses: 17
    Dernier message: 15/06/2005, 16h35
  4. [SAGE] ODBC trop lent
    Par tileffeleauzed dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 14/11/2004, 09h56
  5. Envoi de mail trop lent
    Par MASSAKA dans le forum ASP
    Réponses: 3
    Dernier message: 15/10/2004, 10h57

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