is_serialized() – функция проверяет, является ли значение сериализованным

Функция возвращает логическое значение true или false.

  • true – переданное в неё значение является сериализованным, пусть даже и повторно сериализованным.
  • false – во всех остальных случаях, и также, если в неё было передано нестроковое значение, например массив.
is_serialized( $data, $strict = true )

Параметры

$data
Значение, которое нужно проверить.
$strict
(логический) Более строгая проверка данных. Например, если мы удалим из сериализованной строки два последних символа ;}, то при значении $strict = true функция уже будет возвращать false, а при значении параметра $strict = false всё так же true.

Примеры

Прежде всего хотел бы наглядно продемонстрировать вам принцип действия функции при помощи var_dump().

$data = 'a:2:{s:4:"text";s:21:"Привет, мир!";s:5:"image";s:12:"mountain.jpg";}';
$is_serialized = is_serialized( $data );
var_dump( $is_serialized ); // true
 
// правильность сериализации не проверяется идеально даже при $strict = true
$data = 'a:2:{s:4:"text";s:21:"Привет, мир!";s:5:"image";s:12:"mountain.jpg";';
$is_serialized = is_serialized( $data );
var_dump( $is_serialized ); // true
 
// однако более внимательно проверять строку мы всё же можем
$data = 'a:2:{s:4:"text";s:21:"Привет, мир!";s:5:"image";s:12:"mountain.jpg"';
$is_serialized = is_serialized( $data );
var_dump( $is_serialized ); // false
$is_serialized = is_serialized( $data, false );
var_dump( $is_serialized ); // true
 
// обычная строка
$data = 'Привет, мир!';
$is_serialized = is_serialized( $data );
var_dump( $is_serialized ); // false
 
// обычный массив
$data = array( 'text' => 'Привет, мир!', 'image' => 'mountain.jpg' );
$is_serialized = is_serialized( $data );
var_dump( $is_serialized ); // false

Но в реальном коде var_dump() в паре с is_serialized() конечно же не используется, а используется условие. Например:

$data = ???; // предположим мы получили данные и не знаем, сериализованы они или нет
 
// давайте проверим
if ( is_serialized( $data ) ) {
	// окей, данные оказались сериализованной строкой, структурируем их тогда
	$data = unserialize( $data );
}
 
// делаем дальше что-то с данными ...

Источник: Блог Миши Рудрастых

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: