У меня есть сериализованный объект PHP, который выглядит следующим, когда я его неэриализую:
__PHP_Incomplete_Class Object
(
[__PHP_Incomplete_Class_Name] => model_Baubeschreibung
[prototype:persistence_Table:private] => Array
(
[model_Baubeschreibung] => Array
(
[table] => rp_baubeschreibung
// ... some more stuff here
)
)
[table:persistence_Table:private] => rp_baubeschreibung
[id:persistence_Table:private] => 170
[properties:persistence_Table:private] => Array
(
[name] => MY NAME
[description] => MY DESCRIPTION
[category] => MY CATEGORY
)
[references:persistence_Table:private] => Array
(
// Some more stuff here
)
[objects:persistence_Table:private] => Array
(
)
[callback:persistence_Table:private] => Array
(
)
[state:persistence_Table:private] => 2
);
У меня нет возможности загрузить класс, к которому относится этот объект.
Есть ли способ получить значения " MY NAME
", " MY DESCRIPTION
", " MY CATEGORY
" и идентификатор (здесь: 170) от объекта? В лучшем случае без preg_match. Я пробовал перебирать объект, но это не сработало.
Перед деаэрилизацией объекта необходимо включить определение класса. Используйте правильный автозагрузчик или просто включите класс.
Когда вы это сделаете. Он будет правильно отброшен к объекту вашего класса.
Вставить как массив и свойства чтения:
$unserializedObject = unserialize($string);
$array = (array)$unserializedObject;
var_dump($array["\0persistence_Table\0properties"]);
// ^ ^
// these null bytes are required!
get_object_vars()