Alex.Antipin
Новичок
О наболевшем. PHP XML и кодировка.
Господа. Написал вот такой небольшой скрипт:
Этот скрипт получает из формы переменную $info (текст на русском) и ещё несколько переменных, которые я убрал для компактности, и формирует XML из этого формата:
Вообщем, как вы уже наверное поняли, русский текст превращается в черт что.
Причем, в зависимости от различных попыток решить проблему (использование utf8_encode / decode, iconv, указание кодировки в ХМЛ файле), все равно получался глюк. Иногда получались коды, иногда просто квадратики и т.д. Но ни разу - НОРМАЛЬНАЯ КИРИЛЛИЦА.
В связи с этим несколько вопросов:
1. Возможна ли вообще корректная работа с кирилицей при следующих параметрах сервера (valuehost):
— PHP Version 4.3.10
— DOMXML
DOM/XML enabled
DOM/XML API Version 20020815
libxml Version 20614
HTML Support enabled
XPath Support enabled
XPointer Support enabled
DOM/XSLT enabled
libxslt Version 1.0.30
libxslt compiled against libxml Version 2.5.7
DOM/EXSLT enabled
libexslt Version 1.0.30
Читал, что есть некая переделанная библиотека http://dan.phpclub.net/files.html php_domxml, но хостер послал меня подальше с просьбой об апгрейде.
2. Если возможна корректная работа domxml с кириллицей при вышеописанных условиях, помогите плиз что ге подправить в моем коде.
Господа. Написал вот такой небольшой скрипт:
Код:
<?php
if ( !file_exists("data.xml") )
{
$doc = domxml_open_mem('<?xml version="1.0"?><markers/>');
$doc->dump_file("data.xml", false, true);
echo "Файл создан<br />";
}
else
{
if ( !$doc = domxml_open_file("data.xml") )
{
echo "Файл с маркерами имеет некорректный формат<br />";
}
else
{
$root = $doc->document_element();
$marker = $doc->create_element("marker");
$marker = $root->append_child($marker);
$attr = $doc->create_attribute("info",$info);
$attr = $marker->append_child($attr);
$doc->dump_file("data.xml", false, true);
echo " Маркер добавлен<br />";
}
}
?>
Код:
<?xml version="1.0"?>
<markers>
<marker lat="23.212" lng="43.213" info="Текст на русском"/>
<marker lat="54.343" lng="43.542" info="И ещё разок"/>
</markers>
Причем, в зависимости от различных попыток решить проблему (использование utf8_encode / decode, iconv, указание кодировки в ХМЛ файле), все равно получался глюк. Иногда получались коды, иногда просто квадратики и т.д. Но ни разу - НОРМАЛЬНАЯ КИРИЛЛИЦА.
В связи с этим несколько вопросов:
1. Возможна ли вообще корректная работа с кирилицей при следующих параметрах сервера (valuehost):
— PHP Version 4.3.10
— DOMXML
DOM/XML enabled
DOM/XML API Version 20020815
libxml Version 20614
HTML Support enabled
XPath Support enabled
XPointer Support enabled
DOM/XSLT enabled
libxslt Version 1.0.30
libxslt compiled against libxml Version 2.5.7
DOM/EXSLT enabled
libexslt Version 1.0.30
Читал, что есть некая переделанная библиотека http://dan.phpclub.net/files.html php_domxml, но хостер послал меня подальше с просьбой об апгрейде.
2. Если возможна корректная работа domxml с кириллицей при вышеописанных условиях, помогите плиз что ге подправить в моем коде.