<?php $xw = xmlwriter_open_memory(); xmlwriter_start_document($xw, NULL, "UTF-8"); xmlwriter_start_dtd($xw, "root"); xmlwriter_write_dtd_entity($xw, "ent2", "val2"); xmlwriter_end_dtd($xw); xmlwriter_start_element($xw, "root"); xmlwriter_end_document($xw); print xmlwriter_flush($xw, true); print "\n"; $xw = new XMLWriter(); $xw->openMemory(); $xw->startDocument(NULL, "UTF-8"); $xw->startDtd("root"); $xw->writeDtdEntity("c", NULL, 0, "-//W3C//TEXT copyright//EN", "http://www.w3.org/xmlspec/copyright.xml"); $xw->endDtd(); $xw->startElement("root"); $xw->endDocument(); print $xw->flush(true);
<?php /** * @link https://github.com/corpsepk/yii2-yandex-market-yml * @copyright Copyright (c) 2016 Corpsepk * @license http://opensource.org/licenses/MIT * * @var $shop corpsepk\yml\models\Shop */ use yii\helpers\Html; $writer = new XMLWriter(); $writer->openUri('php://output'); $writer->startDocument('1.0', 'UTF-8'); $writer->startDtd('yml_catalog SYSTEM "shops.dtd"'); $writer->endDtd(); $writer->startElement('yml_catalog'); $writer->writeAttribute('date', date('Y-m-d H:i')); $writer->startElement('shop'); $writer->writeElement('name', Html::encode($shop->name)); $writer->writeElement('company', Html::encode($shop->company)); $writer->writeElement('url', Html::encode($shop->url)); foreach ($shop->optionalAttributes as $attribute) { if (empty($shop->{$attribute})) { continue; } if (is_array($shop->{$attribute})) { foreach ($shop->{$attribute} as $value) { $writer->writeElement($attribute, Html::encode($value)); } } else { $writer->writeElement($attribute, Html::encode($shop->{$attribute}));