Comment envoyer une requete a un site WEB

Résolu
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 - 7 janv. 2008 à 14:29
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre 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

7 réponses

M000004965 Messages postés 147 Date d'inscription mercredi 3 décembre 2003 Statut Membre Dernière intervention 12 juin 2008
10 janv. 2008 à 17:22
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
1
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 2
7 janv. 2008 à 17:15
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
0
lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020
7 janv. 2008 à 15:57
Bonjour,

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

Bonne Prog
-1
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 janv. 2008 à 20:48
Hello,

c'est à dire "rien de concret", il y a quoi dans $reponse ?
-1

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

Posez votre question
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 2
8 janv. 2008 à 11:56
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
-1
M000004965 Messages postés 147 Date d'inscription mercredi 3 décembre 2003 Statut Membre Dernière intervention 12 juin 2008
10 janv. 2008 à 16:15
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
-1
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 2
11 janv. 2008 à 10:31
Super!!!
Merci beaucoup pour ton aide, ça répond exactement à ma question.

Jarod_Delaware
-1
Rejoignez-nous