Ben bir widget için google hava API kullanarak ediyorum.
All is fine and dandy except that today I encountered a problem that I cannot solve. When called with this location:
http://www.google.com/ig/api?weather=dunjkovec,medimurska,croatia&hl=en
Ben bu hatayı alıyorum:
XML parse error 9 'Invalid character' at line 1, column 169 (byte index 199)
Ben sorun burada olduğunu sanıyorum: Nedelišće
Kod bloğu bu biridir:
$parser = xml_parser_create('UTF-8');
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
$ok = xml_parse_into_struct($parser, $data, $values);
if (!$ok) {
$errmsg = sprintf("XML parse error %d '%s' at line %d, column %d (byte index %d)",
xml_get_error_code($parser),
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser),
xml_get_current_column_number($parser),
xml_get_current_byte_index($parser));
}
$ Veri xml içeriği ve $ değerler boştur.
Birisi bana yardımcı olabilir misiniz? Thank you very much!
EDIT ----------------------------------
Hüseyin'in yazıyı okuduktan sonra sorun dosya çağrılır alır şekilde olduğunu keşfetti.
Ben file_get_contents ve cURL çalıştı. Hem döner:
Bu sorun yaratır hattıdır. Ya da ben öyle sanıyordum! Ben bu html_entity_decode ($ veri, ENT_NOQUOTES, 'UTF-8') çalıştı ve bu çalışma değildi, bu yüzden bir keşfetmek, ben xml içeriğini echo edemez yapılmış, ben sadece onları print_r ve sonuçlarını görebilirsiniz html kaynak! Çalışır dünyanın herhangi başka bir yerde olan, sadece bu bir sorun yaratır ... Ben :-( ağlamak istiyorum
EDIT 2 --------------------------------
Umurunda herkes için. Ben API gelen xml dosyasını aldıktan sonra bu kod hatları ile sorun giderilmiştir:
$data = mb_convert_encoding($data, 'UTF-8', mb_detect_encoding($data, 'UTF-8, ISO-8859-1', true));
$data = html_entity_decode($data,ENT_NOQUOTES,'UTF-8');
then parse the xml, it works like a charm. I marked hussein's answer because it got me on the right track.