Re: cvs: php4 /ext/standard file.c /main php_streams.h streams.c
| From: | Ilia A. | Date: | Fri, 18 Oct 2002 22:21:22 +0000 |
| Subject: | Re: cvs: php4 /ext/standard file.c /main php_streams.h streams.c | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-15036@lists.php.net to get a copy of this message | ||
On October 18, 2002 05:50 pm, Rasmus Lerdorf wrote:
> > > My point is that the original data is munged once it goes through the
> > > file() function. In that sense it is not binary safe as there is no
> > > way to restore the original data.
> >
> > Unless the user actually goes and modifies the data, it is very easy to
> > restore the original file back. The example script below will demonstrate
> > that the output of file() can still be safely restored.
> >
> > <?php
> > echo md5_file("sapi/cli/php")."\n";
> > echo md5(implode("", file("sapi/cli/php")))."\n";
> > ?>
> >
> > Both of the md5s are identical, meaning that the file() call itself did
> > nothing that would corrupt the file preventing the the user from
> > restoring file. IMHO that means that the function is binary safe.
>
> But EOL is not always \n and it can be a mix of \r\n \n or \r. You have
> no way of knowing which eol caused the break for any particular line. In
> that sense file() is irreversible.
Why would I care about that, the EOL are not stripped by file(), so I do not
need to know EOLs when assembling the file back. As long as I assemble the
number of lines equal to the number of lines read, I will get the same file.
Ilia