I have a very large XML file that I have to process.  It's about 7 GB. 
Some of the individual elements that I need are larger than 8192 bytes.   
I'm trying to write a Stream wrapper class to give me a specific element 
at a time, but I keep running into issues with the stream wrapper and 
fread, stream_get_content functions.

fread will never return more than 8192 bytes (is that a bug?), so I can't 
use that at all.  When I use stream_get_content, and pass in 16384, weird 
things happen in my stream_read method.  If I return 16384 bytes, it gets 
truncated to 8192, and the stream_read method is called again and again, 
until the total returned is 16384.  Normally, stream_read is called twice 
in this case (since it "returns" 8192 both times).

This really screws up what I'm trying to do with this stream wrapper.  
Admittedly, I don't know much about stream wrappers.  This is my first 
one, and I can't find much relevant documentation on them.  But it 
doesn't seem like it's working correctly to me.  If I ask for 16384 bytes 
with fread, shouldn't it give me 16384 bytes?  And if I return 16384 
bytes when I use stream_get_contents, shouldn't it return 16384 bytes the 
first time?

Thanks for any help.

  -- Rob

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

Reply via email to