3v4l.org

run code in 300+ PHP versions simultaneously
<?php $csv = <<<'CSV' produit nom_pdf type_pdf prive_pdf 1 ENTREE_AIR_AUTO_RE_FR_FR_28143161 Rapport_d_essai 0 1 M_FT_FR_FR_201803 Fiche_technique 0 100 AMD+C_FT_FR_FR_201901 Fiche_technique 0 1000 APDR_FT_FR_FR_201907 Fiche_technique 0 1000 ATTESTATION_A1_CONVENTIONNELS Procès-verbal 1 CSV; $lines = explode("\n", $csv); $headers = str_getcsv(array_shift($lines), ' '); $xw = new XMLWriter(); $xw->openMemory(); $xw->startDocument("1.0", "utf-8"); $xw->setIndent(true); $xw->setIndentString(' '); $xw->startElement('Products'); $prevprod = false; foreach ( $lines as $line ) { $data = array_combine($headers, str_getcsv($line, ' ')); if ( $data['produit'] !== $prevprod ) { if ( $prevprod ) $xw->endElement(); $prevprod = $data['produit']; $xw->startElement('produit'); $xw->writeAttribute('code', $data['produit']); } $xw->startElement('Fichier'); $xw->writeAttribute('nom_fichier', $data['nom_pdf']); $xw->writeAttribute('type_fichier', $data['type_pdf']); $xw->writeAttribute('prive', $data['prive_pdf']); $xw->endElement(); } $xw->endElement(); // product (last) $xw->endElement(); // Products $xw->endDocument(); echo $xw->outputMemory();

preferences:
26.79 ms | 407 KiB | 5 Q