[РЕШЕНО] Функция xmlrpc_message_parse не учитывает BOM

Главные вкладки

Аватар пользователя Litos Litos 29 мая 2015 в 7:19

Здравствуйте, коллеги!

У клиента на сайте xmlrpc отдаёт xml с символом BOM в начале. Описание BOM здесь: https://goo.gl/aVkPXE

С принимающей стороны функция xmlrpc_message_parse не учитывает этот BOM и выдаёт ошибку парсинга "Parse error for system.getCapabilities".

Скажите пожалуйста в какую сторону искать решение и чья эта проблема: принимающей, которая не понимает BOM, или отправляющей стороны, которая добавляет BOM?

Комментарии

Аватар пользователя Litos Litos 30 мая 2015 в 8:02

Разобрался.
Программист редактировал файл в редакторе под Windows, который вставил в текст символ BOM.
Найти такой файл возможно с помощью grep:
1. Можно сразу предлагать удалять такие файлы:
find . -type f -exec sed '1s/^\xEF\xBB\xBF//' -i.bak {} \; -exec rm {}.bak \;
2. или просто показать путь до файла:
grep -rl $'\xEF\xBB\xBF' .

Далее открыть файл в vim. Vim подсвечивает символы bom в отличие от nano.

Аватар пользователя dashiwa dashiwa 30 мая 2015 в 13:50

Ну или можно фильтровать данные до приема на xml.rpc
я постоянно получаю от клиентов грязные данные.. Это + бюджет на приведение к соответсвию