• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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);
    ?>