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 :

socket et lecture en boucle de pages web


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 40
    Par défaut socket et lecture en boucle de pages web
    Bonjour,
    J'ai créé une fonction à l'aide de socket, qui permet de lire le contenu de pages web (toujours sur le meme site web), à partir d'adresses stockés dans une BDD mysql.
    Le problème est qu'au bout d'un certains temps le retour de ma socket (à l'air vide)

    Voici ma fonction

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    function lire_page_texte_brut($name, $chemin)
    {
    $data = '';
    $adresse = $name . $chemin;
    //la requête
    $envoi  = "GET ".$chemin." HTTP/1.1\r\n";
    $envoi .= "Host: ".$name."\r\n";
    $envoi .= "Connection: Close\r\n";
    $envoi .= "Content-type: application/x-www-form-urlencoded\r\n";
    $envoi .= "Content-Length: ".strlen($data)."\r\n\r\n";
    $envoi .= $data."\r\n";
     
    /*ouverture socket*/
    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    if($socket < 0){
            die('FATAL ERROR: socket_create() : " '.socket_strerror($socket).' "');
    }
     
    if (socket_connect($socket,gethostbyname($name),80) < 0){
            die('FATAL ERROR: socket_connect()');
    }
    /*/ouverture socket*/
     
    /*envoi demande*/
    if(($int = socket_write($socket, $envoi, strlen($envoi))) === false){
            die('FATAL ERROR: socket_write() failed, '.$int.' characters written');
    }
    /*/envoi demande*/
     
    /*lecture réponse*/
    $reception = '';
    while($buff = socket_read($socket, 2000))
    {
       $reception.=$buff;
    }
    /*lecture réponse*/
     
    socket_close($socket);
    return $reception;
    }
    ensuite cette fonction est reprise dans mon bout de code principal un peu dans ce style

    while ($donnees = mysql_fetch_array($reponse) )
    {

    //echo $donnees['id'];
    // lire le texte de chaque annonce
    $contenu_annonce = lire_page_texte_brut($donnees['site'], $donnees['lien']);
    ...
    LA JE FAIS UN TAS DE TRAITEMENT
    ....
    }
    ...

    J'ai bien essayé de mettre une temporisation à la fin de la boucle de 1 secondes, pensant que c'était peut etre le serveur qui était saturé , mais rien y fait ,le pb est toujours présent.
    Généralement, il boucle peut être 20 ou 30 fois (je ne serais pas être précis sur ce point) sans problème, ma variable $reception contient visiblement le code html de la page web visé, puis après plus rien comme si la variable $reception était vide.

    Merci pour ceux qui se pencheront sur mon pb ou auront une idee ou une solution, ayant bien conscience que celui ci n'a pas l'air simple.

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 342
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 342
    Billets dans le blog
    17
    Par défaut
    Essaie avec file_get_contents( ) à la place de ta fonction.

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

Discussions similaires

  1. lecture / copy d'une page WEB ou image
    Par thopo57 dans le forum Web
    Réponses: 8
    Dernier message: 07/06/2013, 16h23
  2. lecture cellule excel dans page web
    Par smartbis dans le forum Langage
    Réponses: 1
    Dernier message: 22/05/2008, 10h07
  3. [VBA-E] Boucle de traitement de codes sources de pages web
    Par Currahee dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/09/2007, 09h11
  4. [socket] lire une page web
    Par goonies dans le forum Windows
    Réponses: 1
    Dernier message: 19/11/2005, 16h55

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