php – 如何将XMLReader / DOMDocument与大型XML文件一起使用并防止500错误
作者:互联网
我有一个大约12mb的XML文件,大约有16000个产品.我需要将它处理成一个数据库;然而,在大约6000行时,它会因500错误而死亡.
我正在使用Kohana框架(版本3),以防万一与它有任何关系.
这是我在控制器中的代码:
$xml = new XMLReader();
$xml->open("path/to/file.xml");
$doc = new DOMDocument;
// Skip ahead to the first <product>
while ($xml->read() && $xml->name !== 'product');
// Loop through <product>'s
while ($xml->name == 'product')
{
$node = simplexml_import_dom($doc->importNode($xml->expand(), true));
// 2 queries to database put here
$xml->next('product');
}
XML是商店的一堆项目,因此两个查询是a)插入忽略商店本身和b)插入产品
任何见解将不胜感激.
解决方法:
可能你的内存不足了.尽量增加内存限制
函数ini_set( ‘memory_limit的’, ‘128M’);
或者任何需要的内存量(取决于你的服务器).
我在这里留下一些与其他增加服务器内存限制的方法的链接:
标签:xmlreader,php,xml,large-files,domdocument 来源: https://codeday.me/bug/20191006/1858741.html