Tayson
Новичок
simpleXML - определить кодировку
Парсю XML через функцию:
function parser_xml ($strxml) {
$xml = simplexml_load_string($strxml);
$new_array=array();
if (is_object($xml)) {
echo "\n Ob'ekt est \n";
foreach ($xml->children() as $key=>$response) {
if ($key!="s" || $key!="display") {
echo "Massiv[$key]=".$response."\n";
}
if ($key=="display") {
foreach ($response->children() as $key2 => $response2) { // перебираем доп массив
echo "Massiv[$key2]=".$response2."\n";
$new_array[$key2]=(string)$response2;
}
}else {
$new_array[$key]=(string)$response;
}
}
}else {
echo "Obekt nulevoy. \n";
$new_array=array("result" => "-99");
}
$return_value=$new_array;
return $return_value;
}
Файл XML в логе выглядит так:
$strxml=<?xml version="1.0" encoding="windows-1251"?><res><ch>361</ch><result>178</result><time>2010-06-12 08:49:09</time><s>0A75</s><display><pay_amount>114.21</pay><text>
Укртелеком, Луганск, </text></display></res>
После Распарсивания получаем в логе:
Ob'ekt est
Massiv[ch]=361
Massiv[result]=178
Massiv[time]=2010-06-12 08:49:09
Massiv=0A75
Massiv[display]=
Massiv[pay]=114.21
Massiv[text]=
Р_РєС_С'РчР>РчРєР_Р_, Р>С_Р_Р°Р_С_Рє,
В результате элемент Massiv[text] в другой кодировке. Предположительно UTF -8 , хотя обратное перекодирование через online сервисы начальную строку не дают. Перепробовал около 10 функций которые нашел на форуме и в инете, но так и не смог получить исходную строку. Вообщем мозги кипели кипели и сварились.
. Прошу помощи общества профессионалов. Как получить средствами PHP из Р_РєС_С'РчР>РчРєР_Р_, Р>С_Р_Р°Р_С_Рє --> Укртелеком, Луганск
Парсю XML через функцию:
function parser_xml ($strxml) {
$xml = simplexml_load_string($strxml);
$new_array=array();
if (is_object($xml)) {
echo "\n Ob'ekt est \n";
foreach ($xml->children() as $key=>$response) {
if ($key!="s" || $key!="display") {
echo "Massiv[$key]=".$response."\n";
}
if ($key=="display") {
foreach ($response->children() as $key2 => $response2) { // перебираем доп массив
echo "Massiv[$key2]=".$response2."\n";
$new_array[$key2]=(string)$response2;
}
}else {
$new_array[$key]=(string)$response;
}
}
}else {
echo "Obekt nulevoy. \n";
$new_array=array("result" => "-99");
}
$return_value=$new_array;
return $return_value;
}
Файл XML в логе выглядит так:
$strxml=<?xml version="1.0" encoding="windows-1251"?><res><ch>361</ch><result>178</result><time>2010-06-12 08:49:09</time><s>0A75</s><display><pay_amount>114.21</pay><text>
Укртелеком, Луганск, </text></display></res>
После Распарсивания получаем в логе:
Ob'ekt est
Massiv[ch]=361
Massiv[result]=178
Massiv[time]=2010-06-12 08:49:09
Massiv
Massiv[display]=
Massiv[pay]=114.21
Massiv[text]=
Р_РєС_С'РчР>РчРєР_Р_, Р>С_Р_Р°Р_С_Рє,
В результате элемент Massiv[text] в другой кодировке. Предположительно UTF -8 , хотя обратное перекодирование через online сервисы начальную строку не дают. Перепробовал около 10 функций которые нашел на форуме и в инете, но так и не смог получить исходную строку. Вообщем мозги кипели кипели и сварились.
