Написал прокладку, может кому интересно будет
Код: Выделить всё
<?php
// Открываем и читаем XML-файл
$xml = simplexml_load_file('https://**********.ru/index.php?module=export/xml&id=2');
// Отправляем заголовок для указания, что это CSV
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename="ваш_файл.csv"');
// Открываем php://output для вывода на экран
$csvFile = fopen('php://output', 'w');
// Записываем заголовок CSV (названия столбцов)
$header = [];
foreach ($xml->children()->children() as $element) {
//$header[] = mb_convert_encoding($element->getName(), 'windows-1251');
$header[] = mb_convert_encoding($element->getName(), 'UTF-8');
}
fputcsv($csvFile, $header);
// Записываем данные из XML в CSV
foreach ($xml->children() as $item) {
$row = [];
foreach ($item->children() as $element) {
$row[] = mb_convert_encoding((string)trim(preg_replace('/[\r\n]{1,}/s', ' ', $element)), 'windows-1251');
//$row[] = mb_convert_encoding((string)$element, 'windows-1251');
}
fputcsv($csvFile, $row);
}
// Закрываем CSV-файл
fclose($csvFile);
?>