Edit report at https://bugs.php.net/bug.php?id=42661&edit=1

 ID:                 42661
 Comment by:         phare2013 at gmail dot com
 Reported by:        christian at vaneeden dot ca
 Summary:            file_get_contents() reads binary data incorrectly
 Status:             No Feedback
 Type:               Bug
 Package:            Streams related
 Operating System:   Redhat AS 4
 PHP Version:        5.2.4
 Block user comment: N
 Private report:     N

 New Comment:

"readfile()" worked for me once,after that it also returned garbled binary.


Previous Comments:
------------------------------------------------------------------------
[2009-11-02 01:22:30] alex94040 at yahoo dot com

I'm experiencing the same issue on PHP 5.2.9 on Apache + Windows 7. readfile() 
as a workaround doesn't work for me - same garbled text.

------------------------------------------------------------------------
[2007-09-27 01:00:01] php-bugs at lists dot php dot net

No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".

------------------------------------------------------------------------
[2007-09-19 10:30:57] j...@php.net

Just a note: using file_get_contents() in this is not very useful, readfile() 
is much better anyway. 

Try this little script to see that it's is actually file_get_contents() that is 
buggy:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$docFile = file_get_contents( 'word.doc' );
echo strlen($docFile), "\n";
echo file_put_contents( 'copy_word.doc', $docFile ), "\n";
?>

Then run this on the result:

# diff -a word.doc copy_word.doc

They should not differ..

------------------------------------------------------------------------
[2007-09-13 16:15:05] christian at vaneeden dot ca

Description:
------------
When you read in a binary file with file_get_contents() and try to output it, 
it comes out garbled.
Note: as a workaround use readfile()

Reproduce code:
---------------
$docFile = file_get_contents( 'word.doc' );
header('Content-type: application/msword; charset: UTF-8');
header('Content-Disposition: attachment; filename="word.doc'"');
header('Cache-Control: must-revalidate');
print $docFile;

Expected result:
----------------
A proper word document.

Actual result:
--------------
Garbled binary text.


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



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

Reply via email to