Имеется файл XML, в нем около 35.000 записей. Нужно залить его в БД. На локальном сервере работает, на реальном хостинге нет. ВОзможности изменять параметры хостинга нет. Решил разбить на несколько файло по 20.000 записей, а потом по очереди залить в БД. Полученный код такой:
$data = new \SimpleXMLElement($request->file('feed'), null, true);
$json = json_encode($data);
$data = json_decode($json);
$strings = count($data->offer); //Общее количество строк (в имеющемся файле их 34.493)
$countString = 20000; // Количество записываемых в файл строк
$countFiles = intval($strings / $countString); // Целочисленное значение количества получаемых файлов
$ostatok = $strings % $countString; // дробное число строк, оставшееся от деления
$xml = new \SimpleXMLElement("<?xml version=\"1.0\" encoding=\"UTF-8\"?><Ads/>");
//Создаем файл
for($key = 0; $key < $countFiles; $key++) {
// Записываем в него данные
for ($i = 0; $i < $countString; $i++) {
$item = $data->offer[$i];
$offer = $xml->addChild('offer');
$offer->addChild('type', $item->type);
}
//Сохраняем на диск
$dom = new \DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($xml->asXML());
$dom->save('files/feed'.$key.'.xml');
}
Результатом исполнения сего шедевра стало получение двух файлов. В первом было записано 20.000 строк, во втором было записано два раза по 20.000 строк.
Вопрос такой - после записи строк в первый файл нужно из массива $data их удалить, а оставшиеся записать во второй файл. Как это сделать?
Спасибо