文字

XMLWriter::openMemory

xmlwriter_open_memory

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

XMLWriter::openMemory -- xmlwriter_open_memoryCreate new xmlwriter using memory for string output

说明

面向对象风格

bool XMLWriter::openMemory ( void )

过程化风格

resource xmlwriter_open_memory ( void )

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

用户评论:

[#1] alvaro at demogracia dot com [2011-06-16 01:05:27]

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);
?>

[#2] prashant at prashantpatil dot net [2010-04-26 18:40:34]

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%== 0)
    {
      
$batchXmlString $memXmlWriter->outputMemory(true);
      
$xmlWriter->writeRaw($batchXmlString);
    }
  }
  
$memXmlWriter->flush();
  unset(
$memXmlWriter);
  
$xmlWriter->endElement();
  
$xmlWriter->endDocument();  
}
?>

上一篇: 下一篇: