Попытка выяснить, что означают теги {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. Вы можете найти больше информации в этом ответе.

Другие вопросы по тегам