66 lines
2.1 KiB
PHP
66 lines
2.1 KiB
PHP
<?php
|
|
$csvFile = 't_master_collection.csv';
|
|
|
|
if (!file_exists($csvFile)) {
|
|
die("Plik CSV nie istnieje.");
|
|
}
|
|
|
|
$handle = fopen($csvFile, 'r');
|
|
$headers = fgetcsv($handle, 0, ';');
|
|
|
|
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><produkty></produkty>');
|
|
|
|
// Mapa nagłówków technicznych na pełne, polskie opisy do opisu produktu
|
|
$mapaOpisow = [
|
|
'Material' => 'Materiał wykonania',
|
|
'Kolor_pods' => 'Kolor podstawy',
|
|
'Klasa_energetyczna' => 'Klasa energetyczna',
|
|
'Ilosc_zrodel_swiatla' => 'Ilość źródeł światła',
|
|
'Zawiera_zrodlo_swiatla' => 'Czy zawiera źródło światła',
|
|
'Trzonek' => 'Rodzaj trzonka',
|
|
'Barwa_swiatla' => 'Barwa światła',
|
|
'Srednica_prod' => 'Średnica',
|
|
'Wysokosc_prod' => 'Wysokość',
|
|
'Szerokosc_prod' => 'Szerokość',
|
|
'Glebokosc_prod' => 'Głębokość',
|
|
'Wymiary <wys/szer/gle>' => 'Wymiary (wys. x szer. x gł.)',
|
|
'Waga_netto' => 'Waga netto',
|
|
];
|
|
|
|
while (($data = fgetcsv($handle, 0, ';')) !== false) {
|
|
$produkt = $xml->addChild('produkt');
|
|
$opis = "";
|
|
|
|
foreach ($headers as $i => $header) {
|
|
$value = isset($data[$i]) ? trim($data[$i]) : '';
|
|
$safeHeader = preg_replace('/[^a-zA-Z0-9_]/', '_', $header);
|
|
|
|
// Dodaj " Candellux" do nazwy handlowej
|
|
if ($header === 'Nazwa_handlowa') {
|
|
$value .= ' Candellux';
|
|
}
|
|
|
|
// Tworzenie opisu produktu z mapy opisów
|
|
if (array_key_exists($header, $mapaOpisow) && $value !== '') {
|
|
$opis .= $mapaOpisow[$header] . ': ' . $value . ". ";
|
|
}
|
|
|
|
// Normalny wpis XML
|
|
$produkt->addChild($safeHeader, htmlspecialchars($value));
|
|
}
|
|
|
|
// Dodanie wygenerowanego opisu produktu
|
|
$produkt->addChild('opis_produktu', htmlspecialchars(trim($opis)));
|
|
|
|
// Dodanie dodatkowych pól stałych
|
|
$produkt->addChild('producent', 'Candellux');
|
|
$produkt->addChild('marka', 'Candellux');
|
|
$produkt->addChild('kategoria', 'Oświetlenie');
|
|
}
|
|
|
|
fclose($handle);
|
|
$xml->asXML('output.xml');
|
|
|
|
echo "Konwersja zakończona sukcesem. Plik zapisano jako output.xml";
|
|
?>
|