igbinary_unserialize

(PECL igbinary >= 1.1.1)

igbinary_unserializeСоздаёт значение PHP из сохранённого представления функцией igbinary_serialize()

Описание

igbinary_unserialize(string $str): mixed

Функция igbinary_unserialize() берёт одну сериализованную переменную из функции igbinary_serialize() и преобразовывет её обратно в значение PHP.

Внимание

Ненадёжные пользовательские входные данные не должны передаваться в igbinary_unserialize(). Десериализация может привести к загрузке и выполнению кода из-за создания экземпляра объекта и автозагрузки, тогда злоумышленник может этим воспользоваться. Вместо этого следует использовать безопасный стандартный формат обмена данными, такой как JSON (с помощью функций json_decode() и json_encode()), если сериализованные данные необходимо передать клиенту.

Если есть необходимость десериализовать сохранённые извне сериализованные данные, для проверки данных можно использовать функцию hash_hmac(). Важно убедиться, что данные никто не подделал.

Внимание

Формат сериализации igbinary не позволяет различать разные ссылочные группы для одного и того же значения. Все ссылки PHP на заданное значение при десериализации обрабатываются как часть одной и той же группы ссылок, даже если при сериализации они были частями разных групп ссылок.

Список параметров

str

Сериализованная функцией igbinary_serialize() строка.

Если десериализуемое значение является объектом (object), после успешного восстановления объекта, igbinary автоматически попытается вызвать метод __unserialize() или __wakeup() (если таковой существует).

Замечание: unserialize_callback_func directive

Можно установить callback-функцию, которая будет вызываться, если во время десериализации должен быть создан экземпляр неопределённого класса (чтобы предотвратить получение неполного объекта (object) __PHP_Incomplete_Class). Для определения unserialize_callback_func могут использоваться файлы php.ini, ini_set() или .htaccess. Каждый раз, когда необходимо создать экземпляр неопределённого класса, callback-функция будет вызываться. Чтобы отключить эту функцию, параметр следует очистить.

Возвращаемые значения

Возвращает преобразованное значение, которое может быть bool, int, float, string, array, object или null.

Если переданная строка не может быть десериализована, возвращается false и выдаётся ошибка уровня E_NOTICE или E_WARNING.

Ошибки

Объекты могут выбрасывать исключение Throwable в своих обработчиках десериализации.

Примечания

Внимание

null или false возвращается как в случае возникновения ошибки, так и при десериализации сериализованного значения null или false. Этот особый случай можно определить, сравнивstr с igbinary_serialize(null) или igbinary_serialize(false) или обработав выданную ошибку уровня E_NOTICE.

Смотрите также

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top