[PHP-DEV] Re: PHP 4.0 Bug #9373 Updated: Filesystem read not binary safe?

2001-02-23 Thread Auke van Slooten

On 22 Feb 2001, Bug Database wrote:

 ID: 9373
 Updated by: sniper
 Reported By: [EMAIL PROTECTED]
 Old-Status: Open
 Status: Closed
 Bug Type: Filesystem function related
 Assigned To:
 Comments:

 This should be fixed in CVS already. Please try a dev build from
 http://www.php4win.de/

 --Jani

Hi,
  we've tried the dev build (4.05.dev) and it seems to work, thanks!
however (there's always an however:) we've still got a problem. In the
distribution of Ariadne we've included a serialized array in a separate
file. When reading this file using the following code:

$data=fread($fp,$fs);
$mod-data=unserialize($data);

unserialize fails halfway through the data. Also the string length of
$data is smaller than the file length. After changing the code to this:

$data=fread($fp,$fs);
$data=str_replace("\n","\r\n",$data);
$mod-data=unserialize($data);

unserialize() ran fine... it seems that fread still 'fixes'
return/linefeeds

(btw: the first version of the code runs fine with either the cgi or the
unix apache module version).

regards,
Auke van Slooten
http://www.muze.nl/


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP-DEV] Re: PHP 4.0 Bug #9373 Updated: Filesystem read not binary safe?

2001-02-23 Thread Hartmut Holzgraefe

Auke van Slooten wrote:
   we've tried the dev build (4.05.dev) and it seems to work, thanks!
 however (there's always an however:) we've still got a problem. In the
 distribution of Ariadne we've included a serialized array in a separate
 file. When reading this file using the following code:
 
 $data=fread($fp,$fs);
 $mod-data=unserialize($data);
 
 unserialize fails halfway through the data. Also the string length of
 $data is smaller than the file length. After changing the code to this:
 
 $data=fread($fp,$fs);
 $data=str_replace("\n","\r\n",$data);
 $mod-data=unserialize($data);
 
 unserialize() ran fine... it seems that fread still 'fixes'
 return/linefeeds


did you add 'b' to the fopen() mode to enforce binary operation?

i.e. $fp=fopen($filename,"rb") instead of plain "b"? 

-- 
Hartmut Holzgraefe  [EMAIL PROTECTED]  http://www.six.de  +49-711-99091-77 

Besuchen Sie uns auf der CeBIT 2001 - in Halle 6 Stand F62/4

-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]