【发布时间】:2013-01-27 03:42:59
【问题描述】:
我需要解析一个庞大的数据源(1490 万行 XML,1.7GB)。
我在使用 XMLReader 执行此操作时遇到问题。除了 SimpleXML,我之前什么都不需要,但考虑到我真的无法将这个巨大的东西加载到内存中,我需要通过流来执行此操作。
我已经写了这段代码:
<?php
$xml = new XMLReader();
$xml->open('public.xml');
while($xml->read())
{
echo '.';
}
$xml->close();
?>
但我在执行方面遇到了问题。即,我得到“致命错误:超过 30 秒的最大执行时间......”
当我执行 set_time_limit(600) 时,浏览器就会崩溃。
它崩溃是因为它无法处理 "." 的数量。创建?
你在这里推荐什么?最终,我需要将此 XML 文件导入到关系数据库中。在进入架构细节之前,我正在测试可行性。
【问题讨论】:
-
您可以将时间限制设置为 0,并将内存限制设置为非常高,但如果格式可预测,我可能会使用自己的解析器进行类似的操作。