cs278/serialization-helpers

处理序列化字符串的辅助工具

v1.0.1 2015-08-07 00:55 UTC

This package is not auto-updated.

Last update: 2024-09-24 03:04:35 UTC


README

Build Status Scrutinizer Code Quality

处理PHP中 serialize() 函数创建的字符串的辅助工具。

用法

isSerialized($value) — 检查提供的值是否是PHP序列化字符串,如果语法正确则返回 true。此函数可能会产生假阴性,因为Zend PHP的unserialize()实现可以处理格式不正确的字符串。

isSerialized($value, &$result) — 与上述功能相同,但还会通过引用返回反序列化的值。

unserialize($input) — 将序列化输入转换为PHP数据类型,返回结果数据类型。如果在反序列化操作过程中发生错误,将抛出SyntaxError异常。

示例

测试一个值是否已序列化

isSerialized($value)

<?php

use Cs278\SerializationHelpers\isSerialized;

isSerialized('b:1');
// bool(false)

isSerialized('d:2.71828');
// bool(true)

带有错误处理的反序列化

<?php

use Cs278\SerializationHelpers\unserialize;
use Cs278\SerializationHelpers\Exception\SyntaxError;

try {
    return unserialize('s:"foobar";');
} catch (SyntaxError $e) {
    $logger->warning('Input, `{input}` was not valid serialized data', array(
        'input' => $e->getInput(),
    ));

    return null;
}