WordPress Version: 6.3
/**
* Checks whether serialized data is of string type.
*
* @since 2.0.5
*
* @param string $data Serialized data.
* @return bool False if not a serialized string, true if it is.
*/
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 (!str_ends_with($data, ';')) {
return false;
} elseif ('s' !== $data[0]) {
return false;
} elseif ('"' !== substr($data, -2, 1)) {
return false;
} else {
return true;
}
}