XML в CSV

Все вопросы/проблемы по установке и использовании.
Ответить
remchik
Сообщения: 257
Зарегистрирован: 19 сен 2019, 11:32
Имя: Remchik
Откуда: Москва

XML в CSV

Сообщение remchik »

Появилась необходимость получать данные "на лету" в csv
Написал прокладку, может кому интересно будет

Код: Выделить всё

<?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);
?>
Можно еще подшаманить код кому надо.
***
Тружусь как пчелка
***
SQL,BpmOnline,Creatio,BpmSoft,.NET,SAP WMS,MS SQL Server,Windows Server,IIS
Ответить