HEX
Server: LiteSpeed
System: Linux d8 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: wbwebdes (3015)
PHP: 8.1.31
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/wbwebdes/domains/mailing.wb-cloud.nl/public_html/admin/plugins/Common/ExportXML.php
<?php

namespace phpList\plugin\Common;

use XMLWriter;

/**
 * CommonPlugin for phplist.
 *
 * This file is a part of CommonPlugin.
 *
 * @category  phplist
 *
 * @author    Duncan Cameron
 * @copyright 2011-2018 Duncan Cameron
 * @license   http://www.gnu.org/licenses/gpl.html GNU General Public License, Version 3
 */

/**
 * This class manages the export in XML format.
 */
class ExportXML
{
    public function __construct()
    {
    }

    public function export(IExportable $exporter)
    {
        $fileName = $exporter->exportFileName();

        ob_end_clean();
        header('Content-Type: text/xml');
        header(sprintf('Content-Disposition: attachment; filename="%s.xml"', $fileName));

        $oXMLout = new XMLWriter();
        $oXMLout->openMemory();
        $oXMLout->setIndent(true);
        $oXMLout->startDocument();
        $oXMLout->startElement('root');

        $fields = preg_replace(
            array('/\s/', '/\W/'),
            array('_', ''),
            $exporter->exportFieldNames()
        );

        foreach ($exporter->exportRows() as $row) {
            $oXMLout->startElement('row');

            foreach ($exporter->exportValues($row) as $i => $value) {
                $oXMLout->writeElement($fields[$i], $value);
            }
            $oXMLout->endElement();
        }
        $oXMLout->endElement();
        $oXMLout->endDocument();
        echo $oXMLout->outputMemory();
    }
}