PHP生成XML文件3种方法的速度效率比较 - php语言 -

PHP生成XML文件3种方法的速度效率比较

时间:2012-10-09 14:43:20   来源:   评论:加载中...   点击:加载中...
PHP生成XML文件3种方法的速度比较。有3种方法,分别是直接写;使用DomDocument;使用SimpleXML。 其实还有第4种:使用XMLWriter,不过我没用过...

PHP生成XML文件3种方法的速度比较。有3种方法,分别是直接写;使用DomDocument;使用SimpleXML。

其实还有第4种:使用XMLWriter,不过我没用过,也懒得试了.主要是想看看这3种方式哪个速度要快些
直接上代码:

代码如下:
private function directWriteXml(&$data){  $xmltext='<?xml version="1.0" encoding="UTF-8" ?>';  $xmltext .='<DocumentData>';  $xmltext .='<Detail>';  $loop=count($data);  foreach ($data as $d){   $xmltext .=" <Row ID=" {$d['id']} "  Name=" {$d['name']}" />";  }  $xmltext .='</Detail>';  $xmltext .='</DocumentData>'; eturn $xmltext; } private function useDomDocument(&$data){  //  创建一个XML文档并设置XML版本和编码。。  $dom=new DomDocument('1.0', 'utf-8');  //  创建根节点  $detail01 = $dom->createElement('Detail');  $dom->appendchild($detail01);  foreach ($data as $d) {      $row = $dom->createElement('Row'," ID=" {$d['id']} "  Name=" {$d['name']}" " );      $detail01->appendchild($row);  } eturn $dom->saveXML(); } private function useSimpleXML(&$data){  //  创建一个XML文档并设置XML版本和编码。。  $string = <<<XML<?xml version='1.0' encoding='utf-8'?><detail01></detail01>XML;  $xml = simplexml_load_string($string);  foreach ($data as $d) {      $xml->addChild('Row'," ID=" {$d['id']} "  Name=" {$d['name']}" " );  } eturn $xml->asXML(); ; }

调用时每个都加上大数循环操作,并记录时间
代码如下:
 $loop=10000;  $xml='';  switch($_GET['id']){   case 1:     $ts=$this->microtime_float();     for( $i=0; $i<$loop; $i++)      $xml=$this->directWriteXml($depdata);     $te=$this->microtime_float();     $t=$te-$ts;     $this->assign('times',$t);     $this->assign('method','直接写');     break;   case 2:     $ts=$this->microtime_float();     for( $i=0; $i<$loop; $i++)      $xml=$this->useDomDocument($depdata);     $te=$this->microtime_float();     $t=$te-$ts;     $this->assign('times',$t);     $this->assign('method','DomDocument');     break;   case 3:     $ts=$this->microtime_float();     for( $i=0; $i<$loop; $i++)      $xml=$this->useSimpleXML($depdata);     $te=$this->microtime_float();     $t=$te-$ts;     $this->assign('times',$t);     $this->assign('method','SimpleXML');     break;  }  echo $xml;

实测结果不出所料,直接写最快,耗时只有其他方式的1/3左右. 而其他2种方法差不多,相比之下SimpleXML要快一些.


相关热词搜索:

 
上一篇:PHP生成XML文件的4种方法分享
下一篇:PHP读取图像文件并在浏览器上显示
收藏 将此文推荐给朋友
分享到: