XMLWriter::openMemory

xmlwriter_open_memory

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::openMemory -- xmlwriter_open_memory文字列の出力にメモリを使用する新しい xmlwriter を作成する

説明

オブジェクト指向型

XMLWriter::openMemory ( void ) : bool

手続き型

xmlwriter_open_memory ( void ) : resource

文字列の出力にメモリを使用する新しい XMLWriter を作成します。

パラメータ

返り値

オブジェクト指向型: 成功した場合に TRUE を、失敗した場合に FALSE を返します。

手続き型: 成功した場合に、その後の xmlwriter 関数で使用するための新しい xmlwriter リソース、 エラーの場合に FALSE を返します。

参考

add a note add a note

User Contributed Notes 2 notes

up
3
prashant at prashantpatil dot net
14 years ago
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(); 
}
?>
up
-3
alvaro at demogracia dot com
13 years ago
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);
?>
To Top