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

Signaler
Messages postés
273
Date d'inscription
samedi 5 juillet 2003
Statut
Membre
Dernière intervention
31 mars 2015
-
Jarod1980
Messages postés
273
Date d'inscription
samedi 5 juillet 2003
Statut
Membre
Dernière intervention
31 mars 2015
-
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

Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2008

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
Messages postés
273
Date d'inscription
samedi 5 juillet 2003
Statut
Membre
Dernière intervention
31 mars 2015
1
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
Messages postés
401
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
6 juin 2011

Bonjour,

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

Bonne Prog
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
20
Hello,

c'est à dire "rien de concret", il y a quoi dans $reponse ?
Messages postés
273
Date d'inscription
samedi 5 juillet 2003
Statut
Membre
Dernière intervention
31 mars 2015
1
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
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2008

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
Messages postés
273
Date d'inscription
samedi 5 juillet 2003
Statut
Membre
Dernière intervention
31 mars 2015
1
Super!!!
Merci beaucoup pour ton aide, ça répond exactement à ma question.

Jarod_Delaware