is_serialized_string

The timeline below displays how wordpress function is_serialized_string has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

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;
    }
}

WordPress Version: 6.1

/**
 * 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 (';' !== substr($data, -1)) {
        return false;
    } elseif ('s' !== $data[0]) {
        return false;
    } elseif ('"' !== substr($data, -2, 1)) {
        return false;
    } else {
        return true;
    }
}

WordPress Version: 5.4

/**
 * Check 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 (';' !== substr($data, -1)) {
        return false;
    } elseif ('s' !== $data[0]) {
        return false;
    } elseif ('"' !== substr($data, -2, 1)) {
        return false;
    } else {
        return true;
    }
}

WordPress Version: 4.0

/**
 * Check 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 (';' !== substr($data, -1)) {
        return false;
    } elseif ($data[0] !== 's') {
        return false;
    } elseif ('"' !== substr($data, -2, 1)) {
        return false;
    } else {
        return true;
    }
}

WordPress Version: 3.9

/**
 * Check whether serialized data is of string type.
 *
 * @since 2.0.5
 *
 * @param mixed $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 (';' !== substr($data, -1)) {
        return false;
    } elseif ($data[0] !== 's') {
        return false;
    } elseif ('"' !== substr($data, -2, 1)) {
        return false;
    } else {
        return true;
    }
}

WordPress Version: 3.7

/**
 * Check whether serialized data is of string type.
 *
 * @since 2.0.5
 *
 * @param mixed $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);
    $length = strlen($data);
    if ($length < 4) {
        return false;
    } elseif (':' !== $data[1]) {
        return false;
    } elseif (';' !== $data[$length - 1]) {
        return false;
    } elseif ($data[0] !== 's') {
        return false;
    } elseif ('"' !== $data[$length - 2]) {
        return false;
    } else {
        return true;
    }
}