Свернутый текст
<?php
// -- Устанавливаем кодировку и уровень ошибок -->
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);
// -- Создание HTML-документа методами класса domImplementation -->
// setlocale(LC_ALL, "ru_RU.UTF-8");
$htmlNS = 'http://www.w3.org/1999/xhtml';
$publicId = "-//W3C//DTD XHTML 1.0 Strict//EN";
$systemId = "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";
//!-- без этого не работает -->
$dom = new DOMDocument("1.0", "UTF-8");
// use instead: //!-- c этим тем более не работает -->
$domimpl = new domImplementation();
$dtype = $domimpl ->createDocumentType('html', $publicId, $systemId);
//!-- далее поменял $dtype на $domimpl -->
$dom = $domimpl ->createDocument($htmlNS, 'html', $dtype);
//!-- непонятные вставки из php.net -->
//!-- дублируем версию и кодировку??? -->
$dom ->xmlVersion = "1.0";
// $dom ->xmlEncoding = "UTF-8";//!-- это не подходит -->
$dom ->encoding = 'utf-8';
$dom ->formatOutput = true;
$html = $dom ->documentElement;
$head = $dom ->createElementNS($htmlNS, 'head');
//!-- добавим принадлежность тега <head> -->
$html ->appendChild($head);
$title = $dom ->createElementNS($htmlNS, 'title');
$title ->appendChild($dom ->createTextNode('test-xhtml-title'));
$head ->appendChild($title);
$body = $dom ->createElementNS($htmlNS, 'body');
$body ->appendChild($dom ->createTextNode('test-BODY__TEXT_!!! проверка !!!_'));
$html ->appendChild($body);
// -- вывод документа -->
//echo $dom ->saveXML();
echo $dom ->saveHTML();
Прошу прокомментировать!
Спустя 4 минуты (28.10.2011 - 20:45) Winston написал(а):
Цитата (alive @ 28.10.2011 - 20:41) |
$dom = new DOMDocument("1.0", "UTF-8"); |
Этого достаточно, зачем дублировать xmlVersion и encoding ?
Спустя 2 минуты, 39 секунд (28.10.2011 - 20:48) alive написал(а):
Спасибо, буду теперь знать! Так было в мане от php.net, а сам пример из учебника Котерова.
Спустя 5 минут, 16 секунд (28.10.2011 - 20:53) Winston написал(а):
Также, если хочешь, чтобы был отформатирован xml при сохранении то используй
Только эти свойства нужно устанавливать перед методом load() или loadXML
$dom->formatOutput = true;
$dom->preserveWhiteSpace = false;
Только эти свойства нужно устанавливать перед методом load() или loadXML
Спустя 18 минут, 56 секунд (28.10.2011 - 21:12) alive написал(а):
Ну это я помню, спасибо. просто в этих кодировках: входные-текущие-выходные , черт ногу сломит

Спустя 1 день, 11 часов, 48 минут, 42 секунды (30.10.2011 - 09:01) alive написал(а):
не, неправильно.
так мы дублируем создание объекта, у Котерова правильней написано.
а так
тогда только так
так мы дублируем создание объекта, у Котерова правильней написано.
new DOMDocument("1.0", "UTF-8");-это лишнее
а так
new domImplementation("1.0", "UTF-8");-хавает, но не усваеивает :D
тогда только так
$dom ->encoding = 'utf-8';