PHP XMLReader跳过大型XML文件

时间:2015-07-23 11:48:28

标签: php xml xmlreader

我尝试使用PHP XMLReader继续处理大型xml文件(大约1.5 GB)和大约300万个项目。 但是脚本在2,3到2,600万个项目之间随机停止而没有错误。

没有时间或内存限制。

set_time_limit(0);
ini_set('max_execution_time', 0);
ini_set('memory_limit', -1);
error_reporting(E_ALL);

这是代码:

$Reader = new XMLReader();
$Reader->open('file.xml', NULL, LIBXML_PARSEHUGE);

$count = 0;

while ($Reader->read()) {
    if ($Reader->nodeType == XMLReader::ELEMENT && $Reader->name == 'file') {
        $outerXml = $Reader->readOuterXml();
        $count ++;
        echo $count . "\r\n";
    }
}

echo 'end';

XMLReader似乎有某种限制。我已经尝试过LIBXML_PARSEHUGE选项,但没有成功。

有人有想法吗?

谢谢!

更新: 通过SSH,http curl似乎有问题,即使设置了--max-time选项。 它直接通过PHP解析器运行时可以使用。

0 个答案:

没有答案