| 
        php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
 PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits             
             [1999-05-28 07:52 UTC] sas at cvs dot php dot net
  [2001-02-10 13:17 UTC] jimw@php.net
  [2001-07-22 12:29 UTC] andy@php.net
  [2001-07-23 18:46 UTC] andy@php.net
  [2001-10-02 04:23 UTC] sander@php.net
  [2004-06-12 04:30 UTC] mugu at mugu dot com
  | 
    |||||||||||||||||||||||||||
            
                 
                Copyright © 2001-2025 The PHP GroupAll rights reserved.  | 
        Last updated: Tue Nov 04 00:00:01 2025 UTC | 
I use PHP/3.06 win32 for writing a web crawler which indexes URL's. The indexer has no problems, except on ONE url that I know of so far which seems to be, as far as I can ascertain related to the fgets() function failing to work. fgets() will not read data from any socket connected via fsockopen to www.hutman.com port 80. I know this might seem very strange, but fgets() never seems to be able to determine EOF and hence sits there forever doing nothing. I have used a raw telnet session to try and debug this and cannot find why PHP would do this -- it works fine on every other URL in the database. Here is some code that may help: $sock = fsockopen("www.hutman.com",80); if ($sock) { fputs($sock,"HEAD /dreg/facade/songs/aftk.mp3 HTTP/1.1\n"); fputs($sock,"Host: www.hutman.com\n"); fputs($sock,"User-Agent: HTTP-crawler/1.0\n"); fputs($sock,"Connection: close\n\n"); /* at this point the server responds .. and it indeed does in a telnet session, but PHP simply wont read the data returned AT ALL. */ while ($buf = fgets($sock,128)) { $response = $response . $buf; echo $buf; } No variations of this will work.. the fgets() function will timeout after a while. i have tried while (!feof($sock)) as well, which exhibits similar behaviour, but seems to NEVER return from the fgets() call .. never times out.