Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [xml][php] problem z utf8
Forum PHP.pl > Forum > XML, AJAX
flasht
Witam.
Mam problem i to chyba problem z wbudowanymi funkcjami XML w PHP ...

Jest sobie XML (kodowany w UTF-8):

Kod
<?xml version="1.0" encoding="UTF-8"?>
(...)
<contact:street>Marszałkowska 50 / 33</contact:street>
(...)


I funkcja prase'ująca:

Kod
function xml_tag_parser( $xml_text, &$xml_arr)
{
// Wlasciwa funkcja parsujaca xmla
// Wywolanie:
//    $xml_text - kod xml do sparsowania,
//    $xml_arr - wynikowa tablica xml
// Zwraca - wartosc tablicy $xml_arr

    global $stack;

    $no=0;

    // przygotowanie tablicy $stack
    $stack=array( 0=>array( "tag"=>"xml", "level"=>0, "child"=>array()));

    $xml_parser = xml_parser_create("UTF-8");
    xml_set_element_handler($xml_parser, "startTag", "endTag");
    xml_set_character_data_handler($xml_parser, "cdata");
    xml_parser_set_option($xml_parser,XML_OPTION_CASE_FOLDING,FALSE);
    

    if( !xml_parse($xml_parser,$xml_text))
    {
        die(sprintf("XML error: %s at line %d",
        xml_error_string(xml_get_error_code($xml_parser)),
        xml_get_current_line_number($xml_parser)));
    };
    xml_parser_free($xml_parser);
    
    $xml_arr = $stack[0]["child"];
    array_pop( $stack);

    return $xml_arr;
};


Kod wrzucany do funkcji jak powyzej... a w zwracanej tablicy otrzymuje:

Kod
(...)
[value] => łkowska 50 / 33
(...)


Co jest? Co moge zrobic zeby dzialalo to poprawnie??

Z gory dziekuje za pomoc,
Pozdrawiam,
FlashT
carbolymer
Źle przechowujesz dane w xml. Przed zapisem użyj iconv aby przekonwertować ISO-8859-2 do UTF-8, odwrotnie przy odczytywaniu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.