ID:               24033
 User updated by:  thomas at nimstad dot com
 Reported By:      thomas at nimstad dot com
-Status:           Feedback
+Status:           Open
 Bug Type:         Documentation problem
 Operating System: Win32
 PHP Version:      4.3.2
 New Comment:

I don't think it's a documentation problem of fread().

The posted code worked fine in 4.3.1 but failed when upgrading to 4.3.2
(Win32 version).

Problem 1: fread($fp, 4096) returns max 1024 bytes.
Problem 2: fread($fp, 1024) hangs until timeout if buffer only contains
1023 bytes.

/Thomas


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

[2003-06-05 02:45:00] [EMAIL PROTECTED]

Can you please tell us where in the documentation this is done wrong?

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

[2003-06-05 02:28:46] thomas at nimstad dot com

Problem: 
fread() hangs if not reading exact number of bytes from a socket.
worked previously in 4.3.1.

fread() returns max 1024 bytes even if specifying larger numbers.
worked previously in 4.3.1.

Worked previously (snipped):
  $fp = fsockopen("localhost", 5410, $errno, $errstr, 100);
  // Send request
  if (!fputs($fp, $packet, strlen($packet))) { }

  // Read result header
  while (!feof($fp)) {
    $line = fgets($fp);

    if ($line != "\n" && $line != "\r\n") {
      $header .= $line;
    }
    else {
      if (preg_match('/Content-Length: (\d+)/i', $header, $matches))
        $length = $matches[1];

      if (preg_match('/X-Session-Id: (\d*)/i', $header, $matches))
        $session = $matches[1];
        
      break;
    }
  }

  // Read result body
  $reply = fread($fp, $length);

This hangs the executions until timeout (30 sec).

Have to change the read result body to:

  while (!feof($fp) && $length > 0) {
    $size = min(1024, $length);
    $reply .= fread($fp, $size);
    $length -= $size;
  }

All examples in documentation and even the PEAR/XML-RPC class states
the "old" way what it looks to me.

What's up? New settings that i'm not aware of?

/Thomas

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


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


-- 
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to