Witam,
Staram siê przeparsowaæ plik XML z kodowaniem ISO--2.
Niestety xml_parser_create() wyrzuca mi b³±d: "unknown encoding"
Jak wiadomo, od PHP5 w/w funkcja sama okre¶la kodowanie i nie mo¿na wymusiæ u¿ycia innego kodowania.
Móg³bym spróbowaæ u¿yæ utf8_encode() na pliku XML, ale jest on do¶æ du¿y i by³o by to raczej niewydajne.
Jak sobie z tym poradziæ ?
Pozdrawiam
xml parser create i ISO-8859-2 w PHP5
Staram się przeparsować plik XML z kodowaniem ISO--2.
Niestety xml_parser_create() wyrzuca mi błąd: "unknown encoding" Jak wiadomo, od PHP5 w/w funkcja sama określa kodowanie i nie można wymusić użycia innego kodowania.
Mógłbym spróbować użyć utf8_encode() na pliku XML, ale jest on dość duży i było by to raczej niewydajne. Jak sobie z tym poradzić ? Z tego co się orientuję, to żaden parser w PHP ci tego nie obsłuży (obsługa tego kodowania nie jest wymagana przez XML). Musisz sam skonwertować plik na Unicode.
utf8_encode() nie obsługuje ISO--2. Poza tym sama konwersja nie wystarczy - musisz jeszcze naprawić deklarację kodowania w pliku, jeśli takową ma.
Odłożyć ISO--2 do tej samej gabloty, gdzie leży IBM CP775, Mazovia, Cyfromat i AmigaPL.
Jak sobie z tym poradzić ?
Odłożyć ISO--2 do tej samej gabloty, gdzie leży IBM CP775, Mazovia, Cyfromat i AmigaPL.
porneL pisze:
Też bym chciał, ale ja na prawdę _muszę_ przeczytać ten plik.
Problemy zaczęły się 5-go marca. Widocznie wtedy admin na serwerze uaktualnił PHP do wersji 5.2.9. Z tego co widzę php.net/ChangeLog-5.php 26-go lutego wyszła nowa wersja i poprawiali coś w xml_parse(). bugs.php.net/9
Czyżby zostało mi tylko simpleXML i napisanie parsera samemu ?
Chodzi o zwykły plik RSS i aż nie chce mi się wierzyć, że nie ma gotowego rozwiązania.
Pozdrawiam
porneL pisze:
Czyżby zostało mi tylko simpleXML i napisanie parsera samemu ?
Chodzi o zwykły plik RSS i aż nie chce mi się wierzyć, że nie ma gotowego rozwiązania.
sawic pisze: Jeżeli to jest RSS, to simpleXML może być rozwiązaniem bo pliki RSS nie bywają duże.
Niestety. iconv + podmiana encoding w prologu XML rozwiążą Twój problem.
chester