Accueil > Forum > > > > Télechargement code source page externe avec des $_POST
Télechargement code source page externe avec des $_POST
mardi 3 juillet 2007 à 21:59:31 |
Télechargement code source page externe avec des $_POST

neamar
|
Bonjour à tous ! Voilà, je cherche un moyen de télecharger via PHP les resulats d'une recherche effectuée avec la méthode POST sur un site externe. Par exemple, pour ce site : http://www.gutenberg.org/catalog/world/results , je souhaite récupérer avec PHP de code source résultant de la recherche. Avec <?php $resultat = file_get_contents("http://www.gutenberg.org/catalog/world/results"); echo $resultat; ?> Je n'envoie pas de variables POST dans le header, et récupère donc une page génerique sans résultats. Si quelqu'un a une idée, ou mieux : la solution ? Merci !
|
|
mardi 3 juillet 2007 à 23:13:59 |
Re : Télechargement code source page externe avec des $_POST

coucou747
|
Salut faut voir curl ou fsockopen cherche iprelax, ou les rfc du protocol http, sinon t'as une demo ici http://www.phpcs.com/codes/BANNIR-CLASS-PHP4_33280.aspx une recherche sur exalead vous aurait peut-etre evite de poser cette questionIn a dream, I saw me, drop dead... U were there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy
|
|
mardi 3 juillet 2007 à 23:51:31 |
Re : Télechargement code source page externe avec des $_POST

vilhjalms
|
Saell og blesuð
Avec fsockopen ( methode la plus courante )
<?php function get_html($url,$var) { if (strtoupper(substr($url,0,7))=="HTTP://") $url=substr($url,7); $p = strpos($url,"/"); if ($p===FALSE) { $nom_domaine=$url; $get="/"; }else { $nom_domaine=substr($url,0,$p); $get=substr($url,$p); } $errno=""; $errstr=""; $r=""; $fp = fsockopen($nom_domaine, 80, &$errno, &$errstr, 15); $header = "Host: $nom_domaine\r\n"; $header .= "User-Agent: PHP Script\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "Content-Length: ".strlen($var)."\r\n"; $header .= "Connection: close\r\n\r\n"; if($fp) { fputs($fp, "POST $get HTTP/1.1\r\n"); fputs($fp, $header.$var); fwrite($fp, $out); while (!feof($fp)) { $result.=fgets($fp, 128); } fclose($fp); }else{ $result=$errstr; } return $result; } $url='http://www.gutenberg.org/catalog/world/results'; $var='author=poe&title=the raven&etextnr='; echo get_html($url,$var); ?>
Avec Curl ( methode la plus elegante selon moi )
<?php $URL="http://www.gutenberg.org/catalog/world/results"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,"$URL"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "author=poe&title=Edgar Allan Poe's Complete Poetical Works&etextnr="); $html=curl_exec ($ch); curl_close ($ch); echo $html; ?>
Ou la methode bourrine ( deconseillee mais je l aime bien :) )
$request='author=poe&title=The+Works+of+Edgar+Allan+Poe&etextnr='; echo file_get_contents('http://www.gutenberg.org/catalog/world/results?'.$request); ?>
Vilhjálms
Sigurðsdóttir aka Frëyjá
|
|
mercredi 4 juillet 2007 à 12:19:57 |
Re : Télechargement code source page externe avec des $_POST

neamar
|
Merci beaucoup ! Avec la méthode Curl , jen ne récupère qu'une partie de la page, ca s'arrête abruptement : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="keywords" content="ebooks, ebook, books, book, free, online, audio"> <meta name="description" content="20000 free ebooks online"> <meta name="classification" content="public">
<link rel="stylesheet" type="text/css" href="/css/pg-002.css"> <link rel="shortcut icon" href="/favicon.ico">
<title>Search on Titles > Results - Project Gutenberg</title> </head>
<body class="IEhack"> <div class="menubar"> <div id="logo" class="logo"> <a tabindex="1" href="/wiki/Main_Page" title="Go to Main Page"></a> </div>
<div class="menu"> <div class="menu-group menu-group-open"> <a class="h1" tabindex="30" accesskey="1" title="Go to the online book catalog section - Accesskey=1" href="/catalog/">Online Book Catalog</a> <span class="menusep">=></span> <form method="post" action="/catalog/world/results" accept-charset="utf-8" enctype="multipart/form-data"> <fieldset> <legend>Quick Search</legend> <div>
<label accesskey="a" for="menu-author">Author:</label> <input tabindex="20" alt="Author" type="text" size="20" value="" maxlength="80" id="menu-author" name="author" title="Typ C'est assez bizarre ! Avec la méthode files_get_content, c'est un autre problème, j'obtiens l'erreur failed_to_open_stream ! : Warning: file_get_contents( [ Lien ]) [ function.file-get-contents]: failed to open stream: HTTP request failed! in /mnt/139/sdb/d/3/neamar/rechercheEbook.php on line 3
Alors que si j'enlève le $request, la page se telecharge sans erreur Bref, il ne me reste plus que la méthode fsockopen, qui ellle fonctionne sans problème !
Merci beaucoup !
(si quelqu'un sait pk les autres ne marchent pas ?)
|
|
mercredi 4 juillet 2007 à 14:26:54 |
Re : Télechargement code source page externe avec des $_POST

vilhjalms
|
Saell og blesuð
Heu pour le file_get_contents peut etre que allow_url_fopen est egale a off mais bon c est pas propre du tout comme methode alors :)
Pour curl il faudrait la conf plus avant et peut etre preciser le useragent et le buffersize mais j ai pas teste
Vilhjálms
Sigurðsdóttir aka Frëyjá
|
|
Cette discussion est classée dans : page, code, source, post, externe
Répondre à ce message
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|