За последние 24 часа нас посетил 15731 программист и 1664 робота. Сейчас ищут 872 программиста ...

Проблема с загрузкой XML

Тема в разделе "Прочие вопросы по PHP", создана пользователем affmaster, 18 авг 2008.

  1. affmaster

    affmaster Активный пользователь

    С нами с:
    18 авг 2008
    Сообщения:
    4
    Симпатии:
    0
    Здравствуйте, помогите пожалуйста решить такую проблему: после того, как хостер перенес аккаунт на другой сервер, возникла проблема с загрузкой XML в PHP. Функция xml_parse выдает ошибку: not well-formed (invalid token). Ошибка возникает на любых xml-документах в кодировке windows-1251 на первой по порядку строке, содержащей русские буквы. Сам документ сформирован правильно, кодировка в документе указана. Проблема именно в некорректной обработке русских символов. До переноса на новый сервер тот же скрипт с теми же документами работал. На других хостингах тоже работает. Проблема именно в каких-то настройках сервера. Поддержка хостинга решить проблему не может.
    Подскажите пожалуйста что сказать поддержке хостинга чтобы они решили проблему или как обойти ее самому?
     
  2. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Не PHP 4 случаем стоит? Там для XML парсера юзается Expat, который тока ISO и UTF переваривает.
     
  3. affmaster

    affmaster Активный пользователь

    С нами с:
    18 авг 2008
    Сообщения:
    4
    Симпатии:
    0
    Нет, PHP 5.2.6
     
  4. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Попробуй сразу после создания парсера
    PHP:
    1. xml_parser_set_option($xml_parser, XML_OPTION_TARGET_ENCODING, 'windows-1251');
     
  5. affmaster

    affmaster Активный пользователь

    С нами с:
    18 авг 2008
    Сообщения:
    4
    Симпатии:
    0
    Попробовал:
    Поискал в интернете, во всех описаниях этой функции написано, что поддерживаются только кодировки: ISO-8859-1, US-ASCII и UTF-8.
     
  6. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    В PHP 5 используется libxml, который переваривает и другие кодировки. Посмотри в phpinfo какой именно парсер используется.
     
  7. affmaster

    affmaster Активный пользователь

    С нами с:
    18 авг 2008
    Сообщения:
    4
    Симпатии:
    0
    Я не совсем понимаю как определить какой парсер используется. Судя по этому:
    используется EXPAT.
    Но при этом судя по этому libxml тоже есть:
    Я могу как-то выбрать какой парсер использовать или это хостер должен перенастраивать?