Приветствую!
Воспользовался библиотекой PHP Word, чтобы создавать .docx отчеты из скачиваемых в цикле xml-ек. Переменные $res и $lo на каждой итерации получают новый набор данных. Когда я в цикле записываю эти данные в документ Word, то каждая следующая итерация пишет данные поверх ранее записанного. А мне надо бы, чтобы старя информация сохранялась, а новое добавлялось ниже.. Подскажите, пожалуйста, что я делаю не так?
Мой код:
$phpWord = new \PhpOffice\PhpWord\PhpWord();
PhpOffice\PhpWord\Settings::setOutputEscapingEnabled(true);
$section = $phpWord->addSection();
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
foreach ($tmp as $key => $value) {
if (is_string($value)) {
/*var_dump(substr($value, 21));*/
$cut = $value;
$output = 'https://yandex.ru/search/xml?user=&key=&query=' . urlencode($cut) . '&lr==ru&sortby=&filter=none&maxpassages=5&groupby=ocs-in-group%3D3';
$result = file_get_contents($output);
$al = simplexml_load_string($result);
$clay = $al->{'response'}->results->grouping->group[0]->doc->title->hlword;
echo '<pre>';
print_r($al);
echo '<pre>';
foreach ($clay as $sd) {
$arr[] = '' . $sd . '';
}
$res = implode(" ", $arr);
$arr = [];
$lo = $al->{'response'}->results->grouping->group[0]->doc->url;
if($key === 0) {
$section->addText('Отчет по публикациям информационного агентства');
}
$section->addText($res);
$section->addText($lo);
$section->addTextBreak();
$objWriter->save('helloWorld.docx');
if($key % 3 == 1) {
$key = $key + 1;
break;
}
}
$_SESSION["time"] = $key;