is_serialized_string()
Перевіряє рядок чи серіалізована у зазначеному серіалізованому рядку. Тобто. чи була серіалізована рядок (а чи не масив чи число).
Не треба плутати цю функцію з аналогічною is_serialized() , яка перевіряє чи переданий рядок будь-якими серіалізованими даними. А ця функція перевіряє, що серіалізовано саме рядок.
1 раз – 0.000039 сек
(дуже швидко) | 50000 разів – 0.03 сек
(швидкість світла) |
PHP 7.0.8, WP 4.6.1
(дуже швидко) | 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() is serialized string WP 6.0.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; } }