首页/压缩/转换/php在线反序列化工具

PHP 反序列化查看

把 serialize() 生成的字符串还原成可读结构,数组与对象逐层展开,便于调试。

复制
功能说明

这一页在做什么:PHP 序列化字符串解码

把 serialize() 产出的字符串还原成可读结构(排版与 PHP 的 print_r 一致)。

解析在浏览器本地完成,输入不会离开这台设备。这一页原先是把内容 POST 给 /yasuo/yasuo13.php 由服务端解码的——序列化串里常是 session、缓存这类带敏感字段的数据,所以改成了纯前端实现,PHP 端点已删除。同类做法可参考 在线执行 Js。

输入a:2:{s:5:"tools";a:2:{i:0;s:4:"json";i:1;s:4:"text";}s:4:"site";s:12:"www.is46.com";}含嵌套数组,共 2 个键
按钮 / 选项结果
反序列化输出即 PHP 的 print_r 结果Array ( [tools] => Array ( [0] => json [1] => text ) [site] => www.is46.com )
对象 + 中文 + 空数组输入 178 字节[user] => __PHP_Incomplete_Class Object([__PHP_Incomplete_Class_Name] => stdClass,[id] => 10086,[name] => 张三,[roles] => admin / editor);[ts] => 1730000000.5;[empty] => Array()
接近上限的输入18,426 字节 / 180 条嵌套记录输出 27,352 字符,耗时 2.4 ms(本地解析,无网络往返)
写错的串截断 / 非法类型 / 长度对不上「数组没有结束花括号(第 17 字节处)」
「不支持或非法的类型标记「x」(第 0 字节处)」
「字符串长度超出内容(第 6 字节处)」

对象一律还原成 __PHP_Incomplete_Class Object,只列字段、不模拟任何类逻辑(等价于 PHP 的 allowed_classes=false);C:、r:、S: 这类 serialize() 正常不会产出的标记直接判为格式错误。

长度上限 20KB,超限会直接提示;输出超过 20 万字符会截断。字符串的字节数必须写对(s:6:"张三" 是 6 字节不是 2 字符),一位之差就会报错——这正是 print_r 对齐验证里最容易翻车的地方。

对齐性怎么保证的:用 revamp/php_unserialize_diff.js 生成随机结构(含中文、引号、花括号、NUL、超大整数、INF/NAN、数字字符串键、多层嵌套)连同手写边界共 454 条用例,逐条与本机 PHP 8 的 print_r(unserialize($s, ['allowed_classes' => false])) 比对,PHP 判错的也必须判错——重跑三轮 1,362 条全部逐字节一致。