Comment envoyer une requete a un site WEB [Résolu]

Messages postés
273
Date d'inscription
samedi 5 juillet 2003
Dernière intervention
31 mars 2015
- - Dernière réponse : Jarod1980
Messages postés
273
Date d'inscription
samedi 5 juillet 2003
Dernière intervention
31 mars 2015
- 11 janv. 2008 à 10:31
Bonjour,
Je voudrais savoir si quelqu'un peut m'eclairer sur une petite question. J'aimerais savoir comment envoyer une requête à un site WEB en PHP et éventuellement en récupérer les résultats dans un second temps.
J'ai vu sur ce site que quelqu'un propose un algorithme pour récupérer une chaine de caractère dans un site WEB ce qui pourrait m'aider pour rapatrier les données  http://www.phpcs.com/codes/SIMPLE-ALGORITHME-POUR-RECUPERER-CHAINE-CARACTERE-DANS-PAGE_41050.aspx

Le problème c'est je ne vois pas comment envoyer une requête sur un site WEB à un endroit bien précis de la page, j'ai regardé du coté de http_request et curl_setopt mais j'ai pas trop compris comment ça marche.

Si quelqu'un peut m'eclairer ça serait bien. Merci.

Jarod_Delaware
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Dernière intervention
12 juin 2008
1
Merci
Me revoilou,

ma version d'EasyPHP : 1.8.0.1 (CURL  est intégré et fonctionne)

<?

function processURL($url, $NomFichierCapture)
{

        $ch=curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
        $recuppage = curl_exec ($ch);
        $info = curl_getinfo($ch);
        curl_close ($ch);

// Vérification des codes HTTP
// récuprérations de différents éléments de mesures
// Analyse de contenu

    if (empty($info['http_code'])) {
            die("No HTTP code was returned");
    } else {

        echo "http_code : ".$info['http_code']."
";
        $AddHTTPcde = $info['http_code'];
        echo "url : ".$info['url']."
";
        $AddUrlCrawler = $info['url'];
        echo "content_type : ".$info['content_type']."
";
        echo "header_size : ".$info['header_size']."
";
        echo "request_size : ".$info['request_size']."
";
        echo "filetime : ".$info['filetime']."
";
        echo "redirect_count : ".$info['redirect_count']."
";
        echo "total_time : ".$info['total_time']."
";
        $AddTotalTime = $info['total_time'];
        echo "namelookup_time : ".$info['namelookup_time']."
";
        echo "connect_time : ".$info['connect_time']."
";
        echo "pretransfer_time : ".$info['pretransfer_time']."
";
        echo "size_upload : ".$info['size_upload']."
";
        echo "size_download : ".$info['size_download']."
";
        $AddSizeDownload = $info['size_download'];
        echo "speed_download : ".$info['speed_download']."
";
        echo "speed_upload : ".$info['speed_upload']."
";
        echo "download_content_length : ".$info['download_content_length']."
";
        echo "upload_content_length : ".$info['upload_content_length']."
";
        echo "starttransfer_time : ".$info['starttransfer_time']."
";
        echo "redirect_time : ".$info['redirect_time']."
";

    }
    // Création du fichier txt pour récupérer le contenu de la page reçu par la réponse HTTP
        //ouverture du fichier en écriture
        $fp = fopen($NomFichierCapture,"w");
        fputs($fp,$recuppage);   // Injecte la page crawler
        //fermeture du fichier.
        fclose($fp);
        print ("capture : OK
");

}

$url = "http://humour-blague.com/blague/belge.php";
$NomFichierCapture = 'RecupPageURL.txt';

// Appel de la fonction
$text = processURL($url, $NomFichierCapture);

?>

Voila, tu récupérera un fichier contenant la page web en html
et à l'écran va s'afficher un certain nombre d'info demandé à CURL du type poid de la page, temps de réponse, etc..

Auto didacte, je ne demande qu'à apprendre... Merci de votre aide

Merci M000004965 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de M000004965
Messages postés
273
Date d'inscription
samedi 5 juillet 2003
Dernière intervention
31 mars 2015
0
Merci
Salut,
En fait, ce que je voudrais faire, c'est à partir que ma page web envoyer une requete sur un site qui possède un moteur de recherche et rapatrier son contenu sur ma page.

En gros, le site www.euronext.com propose des indices boursiers que je voudrais rappatrier.

Par exemple, sur cette page : http://www.euronext.com/trader/landing/landingstockoptions-1834-EN.html

j'aimerais à partir de ma page envoyer la requête suivante :
http://www.euronext.com/trader/landing/landingstockoptions-1834-EN.html'instrumentType=8&instrumentSubType=801&mep=2&futuresSelector=2

et rapatrier le résultat de cette requête sur ma page.

J'ai testé la chose suivante pour envoyer ma requête :

<!-- Préparation de la requête-->
      <?php  
      // initialisation des variables
 
      $requete = '';
  
      $param['instrumentType'] = '8'; // identifiant de notre compte TM4B
 
      $param['instrumentSubType'] = '801'; // mot de passe de notre compte TM4B
 
      $param['mep'] = '2'; // envoi de sms
 
      $param['futuresSelector'] = '2'; // message que l'on désire envoyer
  
      // construction de la requete
 
      foreach($param as $clef => $valeur) // pour chaque champ
 
      {
 
 
      $requete .= $clef . '=' . urlencode($valeur); // il faut bien formater les valeurs
 
      $requete .= '&';
 
      }
      ?>
     
      <!--Envoi de la requête-->
      <?php
       
      // url d'accès à la passerelle
     $url = "http://www.euronext.com/trader/landing/landingstockoptions-1834-EN.html";
  
      // initialisation curl
  
      $ch = curl_init();
  
      // parametres
  
      curl_setopt($ch, CURLOPT_URL, $url); // url
  
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // retourne une variable
 
      // au lieu de l'afficher directement
 
      curl_setopt($ch, CURLOPT_POST, 1); // active la méthode POST
 
      curl_setopt($ch, CURLOPT_POSTFIELDS, $requete); // requete
 
      // execute la connexion CURL
 
      $reponse = curl_exec($ch);
 
      // fermeture de la connexion
 
      curl_close($ch);
 
      // affichage de la réponse
 
      echo $reponse;
      ?>
Ca me donne rien de concret

Jarod_Delaware
Commenter la réponse de Jarod1980
Messages postés
401
Date d'inscription
mercredi 19 avril 2006
Dernière intervention
6 juin 2011
-1
Merci
Bonjour,

Que voudrais tu faire concrètement? Je ne vois pas ce que tu entend par "requête"...

Bonne Prog
Commenter la réponse de lesdis
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
-1
Merci
Hello,

c'est à dire "rien de concret", il y a quoi dans $reponse ?
Commenter la réponse de malalam
Messages postés
273
Date d'inscription
samedi 5 juillet 2003
Dernière intervention
31 mars 2015
-1
Merci
Hello,

En fait, dans $reponse, ça doit me renvoyer la réponse du serveur sur lequel j'envoi la requête (?instrumentType=8...etc)
En fait, ça foire au niveau de la ligne $ch curl_init();> Call to undefined function

Jarod_Delaware
Commenter la réponse de Jarod1980
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Dernière intervention
12 juin 2008
-1
Merci
Bonjour,

Si tu ne parviens pas à initialiser CURL c'est que la lib n'est pas chargée.

Je pense que tu à une ancienne version, upgrade ton php

Quelques doc impératives....

Un tuto en anglais :   http://curl.haxx.se/docs/httpscripting.html

Les ref php:
http://fr.php.net/manual/fr/ref.curl.php   (en français)
http://fr.php.net/manual/fr/curl.constants.php   (en français)

Tu ne peux pas y échaper

en attendant, je te prépare un bout de script que j'utilise actuellement...

Utilisation de CURL pour envoyer un GET vers l'URL de ton choix et récupérer la réponse dans fichier TXT

Auto didacte, je ne demande qu'à apprendre... Merci de votre aide
Commenter la réponse de M000004965
Messages postés
273
Date d'inscription
samedi 5 juillet 2003
Dernière intervention
31 mars 2015
-1
Merci
Super!!!
Merci beaucoup pour ton aide, ça répond exactement à ma question.

Jarod_Delaware
Commenter la réponse de Jarod1980

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.