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

Réseau C Discussion :

[socket] Récupérer une page php et accessoirement conseil pour regex


Sujet :

Réseau C

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 115
    Points : 104
    Points
    104
    Par défaut [socket] Récupérer une page php et accessoirement conseil pour regex
    Bonjour,

    En fait je voulais savoir si ce que je cherche à faire est possible et si oui comment.
    Je cherche à refaire un widget comme celui de yahoo affichant l'heure de passage des prochains RER. Pour des raisons techniques je ne peux pas l'utiliser tel quel, je dois le recoder en C en utilisant gtk.
    Le but est donc d'utiliser les regex sur les pages de la ratp.

    Premier problème :
    J'ai peut être mal compris le fonctionnement des sockets, j'ai donc besoin que l'on m'éclaire là dessus : grâce au socket je peux me connecter au site de la ratp et j'indique le fichier que je veux récupérer (je l'enregistre en fichier texte). Ca marche très bien pour récupérer des pages html mais pour des pages php ça me pose problème. Comment puis-je récupérer la page désirée en lui passant des paramètres du type ?ligne=A&station=bidule

    Deuxième problème :
    C'est plus accessoire mais je demande en même temps. Je vais utiliser le fichier sous lequel la page est enregistrée pour en extraire des informations via les regex. Le problème c'est que je connais pas la taille du fichier si je le lis par morceaux ça risque de perturber l'utilisation des regex non ?

    Merci de votre aide

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Odulo
    Premier problème :
    J'ai peut être mal compris le fonctionnement des sockets, j'ai donc besoin que l'on m'éclaire là dessus : grâce au socket je peux me connecter au site de la ratp et j'indique le fichier que je veux récupérer (je l'enregistre en fichier texte). Ca marche très bien pour récupérer des pages html mais pour des pages php ça me pose problème. Comment puis-je récupérer la page désirée en lui passant des paramètres du type ?ligne=A&station=bidule
    Quel rapport avec le langage C ? C'est une question de protocole HTTP.

    Tu te connectes en tant que client HTTP (port 80) et tu fais ta requête (send()). Ensuite, tu récupères les données (recv()) et tu les analyses (regex, si tu veux)).

    Il est bien évident que ce qu'on récupère est tout, sauf du code PhP, on est bien d'accord ? (pour faire ça, il faudrait se connecter en ftp, par exemple, mais ça m'étonnerais que la RATP se laisse faire...). Tout ce que tu vas récupérer, ce sont des pages dynamiques *HTML générées par le PhP du serveur de la RATP ...

    C'est plus accessoire mais je demande en même temps. Je vais utiliser le fichier sous lequel la page est enregistrée pour en extraire des informations via les regex. Le problème c'est que je connais pas la taille du fichier si je le lis par morceaux ça risque de perturber l'utilisation des regex non ?
    On peut toujours déterminer la taille avec fseek()/ ftell()... Mais je ne suis pas sûr que ça ait un intérêt quelconque...
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 115
    Points : 104
    Points
    104
    Par défaut
    merci

    oui effectivement ça pourrait très bien aller à un autre endroit que dans C, désolé.

    Sinon je me suis peut être mal fait comprendre ce n'est pas le code php que je veux mais la page interprêtée.

    Quand j'ouvre le fichier JS du widget en question j'ai par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var adresse="http://www.ratp.info/horaires/?etape=choix_rer_ssotr&act=act_valid&ligne="+preferences.ligne.value;
    Pas de problème avec ce lien : http://www.ratp.info/horaires/?etape..._valid&ligne=A

    Par contre je fais ma requête send avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GET /horaires/?etape=choix_rer_ssotr&act=act_valid&ligne=A HTTP/1.0\n\n
    et là ça me retourne une page web d'erreur : un 404 not found

    sur ce j'en ai conclus qu'on ne pouvait pas récupérer une page interprêtée mais à priori je me trompe

    EDIT : j'ai testé sur d'autres sites et pas de problèmes, il doit donc y avoir une spécificité avec le site de la RATP mais je n'ai pas d'idées

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/08/2009, 10h25
  2. [MySQL] Récupérer variable tpl dans une page PHP
    Par diabli73 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/09/2008, 10h12
  3. Réponses: 17
    Dernier message: 06/03/2008, 10h47
  4. Récupérer le contenu d'une page PHP
    Par Pragmateek dans le forum Réseau
    Réponses: 37
    Dernier message: 28/05/2006, 22h00
  5. Récupérer une partie d'une page php d'un autre site
    Par 73qro dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 01/03/2006, 17h22

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