ID:               21202
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Open
+Status:           Feedback
 Bug Type:         Sockets related
 Operating System: Linux, 2.4.19
 PHP Version:      4.2.3
 New Comment:

Please try using this CVS snapshot:

  http://snaps.php.net/php4-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php4-win32-latest.zip


Previous Comments:
------------------------------------------------------------------------

[2002-12-26 16:05:01] [EMAIL PROTECTED]

Hi there... I wanted to fetch a webpage's contents. I used to be able
to do so by fread'ing with a huge number as length:

//////////////////
$fp=fsockopen( $host, $port, $errno, $errstr, 120 ); 
// assumed host and port were previously defined
$headers = 
                "GET /jornalmn/index.htm HTTP/1.0\r\n"
                ."User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT
5.1)\r\n"
                ."Host: www.meionorte.com\r\n"
                ."Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
image/png, */*\r\n"
                ."Connection: Keep-Alive\r\n"
                ."Cache-Control: no-cache\r\n"
                ."\r\n";

fwrite($fp,$headers, strlen($headers));
$fetched_content = fread($fp,1000000000);
fclose($fp);
////////////////

Just recently this stopped working. Actually, I would eventually fetch
the page, but only after the connection timed out. After a lot of
debugging I found out I'd have sucess by specifying the EXACT file size
to fread. I had to adapt my scripts and tell them to either:

a) Capture the "Content-length" response value sent by the server (easy
way);
b) Fread little by little (128 bytes a time) and use
socket_get_status($fp) everytime to check for EOF condition and the
number of unread bytes.

------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=21202&edit=1

Reply via email to