Попытка выяснить, что означают теги {s:;} и откуда они берутся
Я работаю над переносом сообщений из инфраструктуры RightNow в другой сервис под названием ZenDesk. Я заметил, что всякий раз, когда пользователи добавляют файлы или даже URL-ссылки, когда я извлекаю данные xml из RightNow, это дает мне много странных кодов, подобных этому:
{s:3:""url"";s:45:""/files/56f5be6c1/MUG_presso.pdf"";s:4:""name"";s:27:""MUG presso.pdf"";s:4:""size"";s:5:""2.1MB"";}
Было не так сложно написать что-то, что анализирует их и создает нормальные URL и ссылки, но мне было просто интересно, является ли это чем-то специфичным для сервиса RightNow, или это система тегов, которая используется. Я попытался нагуглить для этого, но получаю некоторые странные результаты, поэтому, переполнение стека, возможно, кто-то столкнулся с этим.
Итак, кто-нибудь знает, как называются эти теги {s;} и существуют ли какие-либо конкретные инструменты для их чтения?
Любые ответы приветствуются!
1 ответ
Это напоминает частично сериализованные данные PHP, возвращаемые serialize()
вызов. Похоже, кто-то мог повернуть каждый "
в ""
, что может помешать правильному анализу. Если это обернуто с текстом, как это до {s:
раздел, это почти наверняка PHP.
a:6:{i:1;a:10:{s:
Эти буквы / цифры означают такие вещи, как "массив с шестью элементами следует", "строка длиной 20 элементов" и т. Д.
Вы можете использовать любой экземпляр PHP с unserialize()
обрабатывать данные. Если эти двойные кавычки действительно возвращаются API, вам может потребоваться заменить :""
а также "";
с "
до разбора.
Модули синтаксического анализа существуют для других языков, таких как Python. Вы можете найти больше информации в этом ответе.