note 31770 added to function.fsockopen
| From: | Jack at soinsincere dot com | Date: | Sat, 03 May 2003 00:14:00 +0000 |
| Subject: | note 31770 added to function.fsockopen | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-47408@lists.php.net to get a copy of this message | ||
Here's a snippet that will open a socket connection, send a request and receive the response,
even if it's in "chunked" coding:
if (!($request=fsockopen('whatever.com',80,$errno,$errstr))) exit($errstr));
else {
socket_set_timeout($request,10);
fwrite($request,"GET /index.html HTTP/1.1\r\n\r\n");
do $header.=fread($request,1);
while (!preg_match('/\r\n\r\n$/',$header));
if (preg_match('/(?i)transfer\-coding:\s+chunked\r\n/',$header))
do {
unset($byte);
unset($chunk_size);
do $byte=fread($request,1);
while (preg_match('/[^a-zA-Z0-9]/',$byte));
if (!($chunk_size=fread($request,4))) break;
$chunk_size=hexdec($byte.$chunk_size);
$response.=fread($request,$chunk_size);
} while ($chunk_size);
else {
$status=socket_get_status($request);
$response=fread($request,$status['unread_bytes']);
}
fclose($request);
}
exit($response);
--
http://www.php.net/manual/en/function.fsockopen.php
http://master.php.net/manage/user-notes.php?action=edit+31770
http://master.php.net/manage/user-notes.php?action=delete+31770
http://master.php.net/manage/user-notes.php?action=reject+31770