PHP中生成xml文件的3种方法的速度和效率比较
PHP中生成xml文件的3种方法的速度比较有3种方法可以直接写;使用DOMDocument;SimpleXML;
有第四种东西:使用XmlWriter,但我没有用它,我没有去尝试。
最主要的是看这3种方式中哪一种更快。
直接在代码上:
复制代码代码如下所示:
私有函数directwritexml($数据){
XMLTEXT美元=;
XMLTEXT美元。=;
XMLTEXT美元。=;
$循环=计数($数据);
foreach($数据为$){
XMLTEXT美元;
}
XMLTEXT美元。=;
XMLTEXT美元。=;
返回的XMLTEXT;
}
私有函数usedomdocument($数据){
创建一个XML文档并设置XML版本和编码。
$ DOM =新DOMDocument('1.0 ','utf-8);
创建根节点
detail01美元=美元DOM -> createElement('detail);
DOM美元-> appendChild($ detail01);
foreach($数据为$){
行=美元美元DOM -> createElement('row ',id={ $ { 'id' } } name={ $ { 'name' } } );
detail01美元-> appendChild(合排);
}
返回的DOM -> savexml();
}
私有函数usesimplexml($数据){
创建一个XML文档并设置XML版本和编码。
$ = < XML
XML;
美元($字符串)simplexml_load_string XML =;
foreach($数据为$){
为XML -> addChild('row ',id={ $ { 'id' } } name={ $ { 'name' } } );
}
返回的XML XML()>;;
}
大量的周期被添加到每一个调用和时间被记录。
复制代码代码如下所示:
$循环= 10000;
$=;
开关($ _get { 'id' }){
案例1:
TS =美元美元-> microtime_float();
($ i = 0;$ i $ $循环;$ + +)
$xml=$this->directWriteXml ($depdata);
$ TE =美元-> microtime_float();
美元= $;
美元->分配('times,$ T);
美元->分配(表现,直写);
打破;
案例2:
TS =美元美元-> microtime_float();
($ i = 0;$ i $ $循环;$ + +)
为XML =美元-> usedomdocument($ depdata);
$ TE =美元-> microtime_float();
美元= $;
美元->分配('times,$ T);
美元->分配(表现,'domdocument);
打破;
案例3:
TS =美元美元-> microtime_float();
($ i = 0;$ i $ $循环;$ + +)
为XML =美元-> usesimplexml($ depdata);
$ TE =美元-> microtime_float();
美元= $;
美元->分配('times,$ T);
美元->分配(表现,'simplexml);
打破;
}
xml;
测量结果并不令人惊讶,直接写是最快的,它在其他方面只需要大约1 3。其他2种方法几乎是相同的,与SimpleXML相比。