@seka2

Как разобрать такую строку {i:0;s:15:"_identity-admin";i:1;s:14:"[3,null,21600]";}?

Часто встречаю записи в базе или в куках в таком виде:
{i:0;s:15:"_identity-admin";i:1;s:14:"[3,null,21600]";}
Что это такое? Похоже на json но не json.
Что такое s:15 s:14, как разбираются такие строки?
Много где встречал такие строки, недавно видел в базе wordpress и в yii2
  • Вопрос задан
  • 146 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Похоже, что строка неполная. Ваша строка - это сериализованный массив, но спереди ещё должен быть признак массива (a) и его длина (2).
$t = unserialize('a:2:{i:0;s:15:"_identity-admin";i:1;s:14:"[3,null,21600]";}');
var_dump($t);
// array(2) {
//   [0] => string(15) "_identity-admin"
//   [1] => string(14) "[3,null,21600]"
// }

a:2 - массив с длиной 2 элемента
i:0 - целочисленный индекс 0
s:15 - строка длиной 15 символов
Подробнее о формате можно посмотреть в первом комментарии к serialize.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Это сериализованные массивы, но можно использовать нативные функции для их получения в виде массивов

var_dump( get_option( 'rewrite_rules', false ) );
var_dump( get_option( 'widget_categories', false ) );
var_dump( get_option( 'wp_user_roles', false ) );
var_dump( get_option( 'cron', false ) );
var_dump( get_post_meta( get_the_ID(), '_schema_json', true ) );
Ответ написан
miraage
@miraage
Старый прогер
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы