XMLWriter::openMemory()
(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)
Create new xmlwriter using memory for string output
说明
面向对象风格
XMLWriter::openMemory(void): bool
过程化风格
xmlwriter_open_memory(void): resource
Creates a new XMLWriter using memory for string output.
参数
返回值
面向对象风格:成功时返回TRUE
,或者在失败时返回FALSE
。
过程化风格: Returns a new xmlwriter 资源(resource) for later use with the xmlwriter functions on success,FALSE
on error.
参见
- XMLWriter::openUri() Create new xmlwriter using source uri for output
Here is an simple example of using openMemory. This is particularly useful when you are handling a large amount of data and you want to split the xml creation in batches. <?php $batchSize = 25; $xmlWriter = new XMLWriter(); $xmlWriter->openUri('php://output'); $xmlWriter->setIndent(true); if($xmlWriter) { $xmlWriter->startDocument('1.0','UTF-8'); $xmlWriter->startElement('Books'); $memXmlWriter = new XMLWriter(); $memXmlWriter->openMemory(); $memXmlWriter->setIndent(true); for($i=1;$i<=1000;$i++) { $memXmlWriter->startElement('book'); $memXmlWriter->text('book_'.$i); $memXmlWriter->endElement(); if($i%5 == 0) { $batchXmlString = $memXmlWriter->outputMemory(true); $xmlWriter->writeRaw($batchXmlString); } } $memXmlWriter->flush(); unset($memXmlWriter); $xmlWriter->endElement(); $xmlWriter->endDocument(); } ?>
A simple usage example: <?php header('Content-type: text/xml; charset=UTF-8'); $oXMLWriter = new XMLWriter; $oXMLWriter->openMemory(); $oXMLWriter->startDocument('1.0', 'UTF-8'); $oXMLWriter->startElement('test'); $oXMLWriter->text('Hello, World!'); $oXMLWriter->endElement(); $oXMLWriter->endDocument(); echo $oXMLWriter->outputMemory(TRUE); ?>