Doc #29045 [Com]: gzopen for URL
| From: | zelnaga at gmail dot com | Date: | Mon, 05 Apr 2010 15:52:21 +0000 |
| Subject: | Doc #29045 [Com]: gzopen for URL | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-4157@lists.php.net to get a copy of this message | ||
Edit report at http://bugs.php.net/bug.php?id=29045&edit=1
ID: 29045
Comment by: zelnaga at gmail dot com
Reported by: fcartegnie at nordnet dot fr
Summary: gzopen for URL
Status: Suspended
Type: Documentation Problem
Package: Documentation problem
Operating System: *
PHP Version: 4.3.7
Assigned To: pollita
New Comment:
This doesn't seem to work.
fopen('compress.zlib://php://temp', 'r+');
When I try it I get the following:
Warning: fopen(compress.zlib://php://temp): failed to open stream:
operation failed in C:\htdocs\www\test.php on line 1
Per this, though, it seems like it should work?
Previous Comments:
------------------------------------------------------------------------
[2007-02-19 13:20:09] infos at firmalarsirketler dot com
thank you for this nice site
------------------------------------------------------------------------
[2004-07-08 11:22:48] helly@php.net
You cannot drop STREAM_MUST_SEEK because the handler uses
seek. In case of http or ftp or what ever forward streams a temporary
file is created automatically so it still works as expected.
------------------------------------------------------------------------
[2004-07-07 22:17:42] pollita@php.net
Wez needs to chime in on this...
I stated that it wouldn't work for http (with or without the patch)
because I thought we had disabled shrinking the chunk_size to 1 while
reading into the HTTP headers (for performance reasons). Looking back
at the code I see that the temporary shift into small chuck sizes *IS*
enabled when the STREAM_WILL_CAST flag is set (which it is for the zlib
fopen wrapper).
Maybe it was the conditional set based on the option flag that was the
compromise... in which case I'd say: Go ahead and use
fopen('compress.zlib://http://blah...',... but the
patch provided for
gzopen() seems completely unnecessary.
------------------------------------------------------------------------
[2004-07-07 16:16:46] derick@php.net
compress.zlib://http://host.file.gz should work fine in php 4,
not?
include "compress.zlib://file.php.gz"; works too ;-)
------------------------------------------------------------------------
[2004-07-07 16:12:31] pollita@php.net
compress.zlib://host/path isn't actually valid.
What is valid however (as of PHP5) is:
$fp = fopen('http://host/path/file.gz',
'r');
/* Maybe a small fread() here to consume gzip headers, I don't recall if
they're sent with deflated content */
stream_filter_append($fp, 'zlib.inflate');
Note: For PHP 5.0 you need PECL package zlib_filter, it'll be rolled
into the core in PHP 5.1 .
The patch supplied above needs further review as I see a big potential
for zlib stream errors with the read buffer blocks that come in with the
headers.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/bug.php?id=29045
--
Edit this bug report at http://bugs.php.net/bug.php?id=29045&edit=1