Lire une page Web

xantra Messages postés 56 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 2 septembre 2011 - 20 juin 2009 à 13:35
katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 - 21 juin 2009 à 18:10
Bonjour,
Je voudrai mettre dans une chaine de caractère ce que retourne un scripte php. J'ai entendu parlé de libcurl, mais impossible de faire quelque chose sans utiliser les grand moyen, avec création de fichier et compagnie. Le scripte php renvoi juste 3 ou 4 caractère, je voudrai les récupérer. Je code en C++ avec codeblocks.
Comment faire?
Merci d'avance.

5 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
21 juin 2009 à 08:22
Salut,

Sous windows ?

Si oui tu peux faire des pipes, comme ça.
Sous linux aussi tu dois pouvoir t'en sortir avec ça.

Plus simple mais moins performant : faire une redirection de la sortie vers un fichier puis lire ce fichier.

Tu exécute quelque chose comme ça :
php foo.php > result.txt

Puis tu lis ton fichier, avec fread dans ton code C par exemple.
0
katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 3
21 juin 2009 à 08:52
Salut, il faut établir une connection TCP avec le serveur web puis envoyer une requête HTTP au serveur. Regarde ici
http://www.cppfrance.com/codes/TELECHARGER-FICHIER-WIN32-SOCKETS_24109.aspx
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
21 juin 2009 à 09:29
Ah vi... Si le script est sur un serveur Web (Comme le titre le laisse entendre), ne pas tenir compte de mon message.
0
xantra Messages postés 56 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 2 septembre 2011
21 juin 2009 à 13:49
Haaaa, mais vous voulez ma mort :D
Bien trop compliqué, en plus ca fait que la moitié de ce que je voudrai faire.
Dans la page que je veux lire il n'y a que une IP, je voudrai la mettre dans un char[]. Actuellement j'ai ceci :
    CURL *curl;
    CURLcode res;

    curl = curl_easy_init();
    if(curl) {
        /* First set the URL that is about to receive our POST. This URL can
            just as well be a https:// URL if that is what should receive the
            data. */
        curl_easy_setopt(curl, CURLOPT_URL, IP_PHP);

        /* Perform the request, res will get the return code */
        res = curl_easy_perform(curl);

        /* always cleanup */
        curl_easy_cleanup(curl);
    }
Mais ca fait juste afficher l'IP dans la fenetre de debug, rien de plus.
En fait apres cette IP va etre intégré dans une requet SQL, voila pourquoi je voudrai un char[].
PS : pourquoi les string ne fonctionne pas?
PS2 : Je suis sous windows, je code en C++ une appli win32.
Merci d'avance.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 3
21 juin 2009 à 18:10
Merci. Sans vouloir m'auto-contredire... Tu devrais apprendre l'API des sockets BSD plutôt que celle de libcurl. Aussi embarquer un lib statique de 300Ko là où seulement 2Ko sont requis, c'est du gaspillage de bande passante et d'espace disque surtout quand les 2Ko en question sont au bout du lien. En espérant qu'un membre t'aidera...
0
Rejoignez-nous