[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: синтаксис для кодировки и вывода версии XML
alive
Помогите разобраться с синтаксисом для кодировки и вывода версии XML документа. хотелось бы узнать, где лучше их (кодировки) задавать, и так ли нужно после дублировать?
Свернутый текст
<?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 при сохранении то используй
$dom->formatOutput = true;
$dom->preserveWhiteSpace = false;

Только эти свойства нужно устанавливать перед методом load() или loadXML

Спустя 18 минут, 56 секунд (28.10.2011 - 21:12) alive написал(а):
Ну это я помню, спасибо. просто в этих кодировках: входные-текущие-выходные , черт ногу сломит biggrin.gif

Спустя 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';
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.