JC
2007-07-27 13:28:18 UTC
Bonjour,
je viens d'essayer de comprendre le fonctionnement de la fonction
fsockopen, mais j'ai encore du mal.
J'ai recherché des exemples, mais les commentaires sont pas tjs là, ou
alors ce sont des usines à gaz; :-(
Je cherche à faire une fonction qui se connecte à une page pour la
récupérer.
Auriez vous un exemple pour récupérer dans une variable cette page par
exemple :
www.mondomaine.com/dossier/mapage.html
Et en donnant comme parametres :
Accept-Language: fr-fr
User-Agent: Mozilla/5.0
Le seul script que j'ai trouvé et qui s'en rapproche le plus est celui-ci :
if ( ( $io = fsockopen( "www.yahoo.com", 80, $errno, $errstr, 5 ) ) !==
false )
{
$send = "GET / HTTP/1.1\r\n";
$send .= "Host: www.yahoo.com\r\n";
$send .= "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
rv:1.2.1) Gecko/20021204\r\n";
$send .= "Referer: www.yahoo.com\r\n";
$send .= "Accept: text/xml,application/xml,application/xhtml+xml,";
$send .= "text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,";
$send .= "image/jpeg,image/gif;q=0.2,text/css,*/*;q=0.1\r\n";
$send .= "Accept-Language: fr-fr, en-us, en;q=0.50\r\n";
$send .= "Accept-Encoding: gzip, deflate, compress;q=0.9\r\n";
$send .= "Connection: Close\r\n\r\n";
fputs ( $io, $send );
$send = '';
do
{
$send .= fgets ( $io, 4096 );
} while ( strpos ( $send, "\r\n\r\n" ) === false );
$info = decode_header ( $send );
$send = '';
while ( ! feof ( $io ) )
{
$send .= fread ( $io, 8192 );
}
fclose ( $io );
$send = decode_body ( $info, $send );
echo '<h3>Header Array</h3>';
echo '<pre>';
print_r ( $info );
echo '</pre>';
echo '<h3>Document Body</h3>';
echo $send;
}
les fonctions decode_header et decode_body ne sont pas recopiées, elles
servent à mettre en forme les resultats.
Merci de votre aide.
JC.
je viens d'essayer de comprendre le fonctionnement de la fonction
fsockopen, mais j'ai encore du mal.
J'ai recherché des exemples, mais les commentaires sont pas tjs là, ou
alors ce sont des usines à gaz; :-(
Je cherche à faire une fonction qui se connecte à une page pour la
récupérer.
Auriez vous un exemple pour récupérer dans une variable cette page par
exemple :
www.mondomaine.com/dossier/mapage.html
Et en donnant comme parametres :
Accept-Language: fr-fr
User-Agent: Mozilla/5.0
Le seul script que j'ai trouvé et qui s'en rapproche le plus est celui-ci :
if ( ( $io = fsockopen( "www.yahoo.com", 80, $errno, $errstr, 5 ) ) !==
false )
{
$send = "GET / HTTP/1.1\r\n";
$send .= "Host: www.yahoo.com\r\n";
$send .= "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
rv:1.2.1) Gecko/20021204\r\n";
$send .= "Referer: www.yahoo.com\r\n";
$send .= "Accept: text/xml,application/xml,application/xhtml+xml,";
$send .= "text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,";
$send .= "image/jpeg,image/gif;q=0.2,text/css,*/*;q=0.1\r\n";
$send .= "Accept-Language: fr-fr, en-us, en;q=0.50\r\n";
$send .= "Accept-Encoding: gzip, deflate, compress;q=0.9\r\n";
$send .= "Connection: Close\r\n\r\n";
fputs ( $io, $send );
$send = '';
do
{
$send .= fgets ( $io, 4096 );
} while ( strpos ( $send, "\r\n\r\n" ) === false );
$info = decode_header ( $send );
$send = '';
while ( ! feof ( $io ) )
{
$send .= fread ( $io, 8192 );
}
fclose ( $io );
$send = decode_body ( $info, $send );
echo '<h3>Header Array</h3>';
echo '<pre>';
print_r ( $info );
echo '</pre>';
echo '<h3>Document Body</h3>';
echo $send;
}
les fonctions decode_header et decode_body ne sont pas recopiées, elles
servent à mettre en forme les resultats.
Merci de votre aide.
JC.