rgasch Posted September 3, 2008 Share Posted September 3, 2008 Hi, I'm having a strange problem that I can't figure out. I'm trying to generate a large XML file using XMLWriter but the file I generate never grows beyond 3138986 bytes (whether I use the XMLWriter to write to a file/URI or generate the XML in memory and then pass it though gzwrite() doesn't affect the outcome; the (gunzipped) file never grows beyond 3138986 bytes. Here's some code excepts of what I'm doing: $writer = new XMLWriter(); if ($this->_gzip) { $writer->openMemory(); $fp = gzopen ($this->_filename.'.gz', 'wb'); } else { $writer->openURI($this->_filename); } $writer->startDocument('1.0', 'ISO-8859-15'); $writer->setIndent(4); $writer->startElement('Products'); $count = 0; $page = 0; $objArray = new PNProductArray (); $colArray = getColumnsArray('table'); do { $data = selectFromDB ('$page*$this->_pagesize, $this->_pagesize); foreach ($data as $dat) { $writer->startElement('Product'); foreach ($colArray as $field) { $writer->writeElement($field, $dat[$field]); } $writer->endElement(); $count++; } $page++; } while ($data); $writer->endElement(); $writer->endDocument(); if ($this->_gzip) { $xml = $writer->outputMemory(); $fp = gzopen ($this->_filename.'.gz', 'wb'); gzwrite ($fp, $xml); gzclose ($fp); } else { $writer->flush(); } In summary, no matter what I do, I can't seem to generate an XML file greater than 3138986 bytes. I've tried flushing the buffer after every DB fetch (if writing to a non-compressed file) but nothing helped. I'm not running into any (visible) PHP memory or processing time limits. Any ideas would be much appreciated. Thanks Rob Link to comment https://forums.phpfreaks.com/topic/122544-problems-writing-a-large-xml-file-using-xmlwriter/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.