При разборе такого xml файла:
<?xml version="1.0" encoding="windows-1251" ?>
<list>
<sort id="g1">
<sortName>Имя</sortName>
<clas>Д</clas>
<diameter>15</diameter>
<height>140</height>
<color>Цвет</color>
</sort>
</list>
русские слова получаются примерно такие ДДДДДДДД
парсер использую такой:
class Content_Handler{
private $currentElement = "";
private $sortName = "";
private $clas = "";
private $diameter = "";
private $height = "";
private $color = "";
function start_element($parser, $name, $attrs){
if ($name == "list"){
echo "<table width='100%'><tr>".
"<td><h1>Название</h1></td>
<td><h1>Класс</h1></td>".
"<td><h1>Диаметр</h1></td>
<td><h1>Высота куста</h1></td>
<td><h1>Окраска</h1></td></tr>";
}
$this->currentElement = $name;
}
function end_element($parser, $name){
if ($name == "list"){
echo "</table>";
}
if ($name == "sort"){
echo "<tr><td>".$this->sortName."</td>".
"<td>".$this->clas."</td>".
"<td>".$this->diameter."</td>".
"<td>".$this->height."</td>".
"<td>".$this->color."</td></tr>";
$this->sortName = "";
$this->cals = "";
$this->diameter = "";
$this->height = "";
$this->color = "";
}
$this->currentElement = "";
}
function chars($parser, $chars){
if ($this->currentElement == "sortName"){
$this->sortName = $this->sortName . $chars;
}
if ($this->currentElement == "clas"){
$this->clas = $this->clas . $chars;
}
if ($this->currentElement == "diameter"){
$this->diameter = $this->diameter . $chars . cm;
}
if ($this->currentElement == "height"){
$this->height = $this->height . $chars . cm;
}
if ($this->currentElement == "color"){
$this->color = $this->color . $chars;
}
}
}
function display(){
$handler = new Content_Handler();
$doc_parser = xml_parser_create();
xml_set_object($doc_parser, $handler);
xml_set_element_handler($doc_parser,
"start_element",
"end_element");
xml_set_character_data_handler($doc_parser, "chars");
xml_parser_set_option($doc_parser,
XML_OPTION_CASE_FOLDING, 0);
$xmlfile = "g.xml";
$file_to_parse = fopen($xmlfile, "r");
if (!$file_to_parse) die("Can't open XML file.");
while($data = fread($file_to_parse, 4096)){
xml_parse($doc_parser, $data, feof($file_to_parse));
}
}
Пытался добавить в код header('Content-type: text/html; charset=windows-1251'); но не помогает, возможно не там добавлял.
Подскажите, где нужно добавить код?
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.