Скачиваю файлы весом от 30 до 700мб, часто бывает большая нагрузка на процессор, как можно решить эту проблему?
Использую расширение от Hobnob\XmlStreamReader\Parser для yii2
$parser = new \Hobnob\XmlStreamReader\Parser();
$parser->registerCallback(
'/source/products/product',
function( \Hobnob\XmlStreamReader\Parser $parser, \SimpleXMLElement $node ) {
parseListing($node);
}
);
дальше в функции parseListing преобразую в массив
function parseListing($product)
{
if (empty($product))
return;
$data = xml2array($product);
/*тут уже сохраняю к себе в базу данные из $data*/
}
function xml2array($xml)
{
$arr = array();
foreach ($xml->children() as $r)
{
/** @var \SimpleXMLElement $r */
if (count($r->children()) == 0)
$arr[$r->getName()] = strval($r);
else
$arr[$r->getName()][] = xml2array($r);
}
return $arr;
}