cs278 / serialization-helpers
处理序列化字符串的辅助工具
v1.0.1
2015-08-07 00:55 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- fabpot/php-cs-fixer: ~1.10
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-09-24 03:04:35 UTC
README
处理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; }