ID: 1432
Updated by: jimw
Status: Open
Old-Bug Type: Feature/Change Request
Bug Type: Sockets related
Assigned To: 

refiling as a bug against 4.0.

Previous Comments:

[1999-05-28 07:52:28] [EMAIL PROTECTED]
fgets recognizes a carriage return (CR, 'n', 0xod)  as a end-of-line only. The site in 
question uses line feeds (LF, īrī, 0x0a) as line delimiters.

Moving the report over to feature requests.


[1999-05-21 04:28:24] [EMAIL PROTECTED]
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 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("",80);

    if ($sock)
      fputs($sock,"HEAD /dreg/facade/songs/aftk.mp3 HTTP/1.1n");
      fputs($sock,"Host: www.hutman.comn");
      fputs($sock,"User-Agent: HTTP-crawler/1.0n");
      fputs($sock,"Connection: closenn");

/* 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.


ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at

PHP Development Mailing List <>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to