总有人间一两风,填我十万八千梦

PHP XMLWriteropenMemory 用法 手册 | 示例代码

PHP开发手册 归档 479℃ 0评论

XMLWriter::openMemory

xmlwriter_open_memory

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

XMLWriter::openMemoryxmlwriter_open_memoryCreate 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.

参见

用户贡献的笔记

prashant at prashantpatil dot net

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

alvaro at demogracia dot com

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

转载请注明:悠然品鉴 » PHP XMLWriteropenMemory 用法 手册 | 示例代码

喜欢 (0)or分享 (0)
发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址