litvinenko
Новичок
русские буквы в xml файле
Доброго времени суток, знатоки!
Заранее прошу прощения. Наверняка уже что-то подобное рассматривалось в этом форуме, тогда пошу кинуть ссылку.
Проблема такая: есть xml-файл (список новостей), в котором присутствуют русские буквы.
Дело в том, что этот файл не хочет обрадатываться. Когда русских букв нет - все нормально.
Пример взят кажется из мануала по пхп.
Xml-файл test.xml
<?xml version="1.0"?>
<newsdb>
<news>
<title>в</title>
<create_time>сегодня</create_time>
<text>бла бла блаб ла
вапвапвапвап
вапвапвапвапвапвап
апвап</text>
</news>
<news>
<title>Заголовок 2</title>
<create_time>вчера</create_time>
<text>бла бла бла</text>
</news>
</newsdb>
php-файл test.php
-~{}~ 27.09.06 10:17:
да. кстати. вот что выводится в броузере:
array
0 =>
object(Xml)[1]
public 'tag' => 'newsdb' (length=6)
public 'value' => null
public 'attributes' => null
public 'next' =>
array
0 =>
object(Xml)[2]
public 'tag' => 'news' (length=4)
public 'value' => null
public 'attributes' => null
public 'next' =>
array
0 =>
object(Xml)[3]
public 'tag' => 'title' (length=5)
public 'value' => null
public 'attributes' => null
public 'next' =>
array
empty
Доброго времени суток, знатоки!
Заранее прошу прощения. Наверняка уже что-то подобное рассматривалось в этом форуме, тогда пошу кинуть ссылку.
Проблема такая: есть xml-файл (список новостей), в котором присутствуют русские буквы.
Дело в том, что этот файл не хочет обрадатываться. Когда русских букв нет - все нормально.
Пример взят кажется из мануала по пхп.
Xml-файл test.xml
<?xml version="1.0"?>
<newsdb>
<news>
<title>в</title>
<create_time>сегодня</create_time>
<text>бла бла блаб ла
вапвапвапвап
вапвапвапвапвапвап
апвап</text>
</news>
<news>
<title>Заголовок 2</title>
<create_time>вчера</create_time>
<text>бла бла бла</text>
</news>
</newsdb>
php-файл test.php
PHP:
<?php
class Xml
{
var $tag;
var $value;
var $attributes;
var $next;
}
function xml2array($xml_string)
{
$Parser = xml_parser_create();
xml_parser_set_option($Parser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($Parser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($Parser, $xml_string, $Xml_Values);
xml_parser_free($Parser);
$XmlClass = array();
$LastObj = array();
$NowObj = &$XmlClass;
foreach($Xml_Values as $Xml_Key => $Xml_Value)
{
$Index = count($NowObj);
if($Xml_Value["type"] == "complete")
{
$NowObj[$Index] = new Xml;
$NowObj[$Index]->tag = $Xml_Value["tag"];
$NowObj[$Index]->value = $Xml_Value["value"];
$NowObj[$Index]->attributes = $Xml_Value["attributes"];
}
elseif($Xml_Value["type"] == "open")
{
$NowObj[$Index] = new Xml;
$NowObj[$Index]->tag = $Xml_Value["tag"];
$NowObj[$Index]->value = $Xml_Value["value"];
$NowObj[$Index]->attributes = $Xml_Value["attributes"];
$NowObj[$Index]->next = array();
$LastObj[count($LastObj)] = &$NowObj;
$NowObj = &$NowObj[$Index]->next;
}
elseif($Xml_Value["type"] == "close")
{
$NowObj = &$LastObj[count($LastObj) - 1];
unset($LastObj[count($LastObj) - 1]);
}
}
return $XmlClass;
}
$filename = "test.xml";
$string = file_get_contents($filename);
var_dump($string);
$Xml = xml2array($string);
var_dump($Xml);
?>
да. кстати. вот что выводится в броузере:
array
0 =>
object(Xml)[1]
public 'tag' => 'newsdb' (length=6)
public 'value' => null
public 'attributes' => null
public 'next' =>
array
0 =>
object(Xml)[2]
public 'tag' => 'news' (length=4)
public 'value' => null
public 'attributes' => null
public 'next' =>
array
0 =>
object(Xml)[3]
public 'tag' => 'title' (length=5)
public 'value' => null
public 'attributes' => null
public 'next' =>
array
empty