WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

is_serialized_string() WP 2.0.5

Проверяет строка ли сериализована в указанной сериализованной строке. Т.е. была ли сериализована строка (а не массив или число).

Ищем WP-разработчика! Фулл-тайм, удаленка, хорошая зарплата, соц. пакет. Подробности.
Компания Boosta.

Не надо путать эту функцию с аналогичной is_serialized(), которая проверяет являются ли переданная строка любыми сериализоваными данными. А эта функция проверяет что сериализована именно строка.

1 раз — 0.000039 сек (очень быстро) | 50000 раз — 0.03 сек (скорость света) | PHP 7.0.8, WP 4.6.1

Хуков нет.

Возвращает

true|false. False - это не сериализованная строка. true - это сериализованные данные и в них находится строка.

Использование

is_serialized_string( $data );
$data(строка) (обязательный)
Сериализованные данные.

Примеры

#1 Демонстрация проверки сериализованной строки.

// сериализованный массив
is_serialized_string( 'a:1:{s:3:"foo";s:3:"bar";}' ); //> false

// сериализованная строка - serialize( 'foo' )
is_serialized_string( 's:3:"foo";' ); //> true

#2 Эту функцию принято использовать в связке с is_serialized()

Допустим в $option могут быть сериализованные данные и всякие массивы, булены числа и т.д.

// Если это сериализованные данные
if ( is_serialized( $option ) ) {
	// если в сериал. данных находится только строка
	if ( is_serialized_string( $option ) ) {
		echo esc_html( unserialize( $option ) );
	}
	// в сериализованных данных находится что-то отличное от строки
	else {
		echo 'SERIALIZED DATA';
	}
}

Список изменений

С версии 2.0.5 Введена.

Код is_serialized_string() WP 5.8.2

function is_serialized_string( $data ) {
	// if it isn't a string, it isn't a serialized string.
	if ( ! is_string( $data ) ) {
		return false;
	}
	$data = trim( $data );
	if ( strlen( $data ) < 4 ) {
		return false;
	} elseif ( ':' !== $data[1] ) {
		return false;
	} elseif ( ';' !== substr( $data, -1 ) ) {
		return false;
	} elseif ( 's' !== $data[0] ) {
		return false;
	} elseif ( '"' !== substr( $data, -2, 1 ) ) {
		return false;
	} else {
		return true;
	}
}

serialize (сериализация)

Проверки (checks)

Комментариев нет
    Войти