PHPSESSION 转换

PHP SESSION 序列化字符串与 JSON 双向互转工具,支持 s/i/b/d/a/N/O 类型与错误位置定位

SESSION 序列化转换器

PHP SESSION 格式(key|value;key|value;)与 JSON 双向转换

支持类型:s 字符串、i 整数、b 布尔、d 浮点、a 数组、N null、O 对象

支持的数据类型

s 字符串 i 整数 d 浮点 b 布尔 a 数组 N null O 对象
PHP SESSION 格式:每个键值对以 key|serialized_value 形式存储,连续拼接。键为字符串,值采用 PHP serialize 序列化格式。
广告位

使用说明

  1. 选择转换方向:SESSION 转 JSON(默认)或 JSON 转 SESSION
  2. 在左侧输入框填入 PHP SESSION 序列化字符串或 JSON 数据
  3. SESSION 格式示例:name|s:5:"alice";age|i:30;
  4. 点击"转换"按钮,右侧自动显示转换结果
  5. "交换方向"按钮可一键切换两个文本框的方向与内容
  6. 解析失败时会在右下方显示具体错误位置与原因
  7. 支持嵌套数组与对象,复杂结构可正常解析

适用场景

  • 调试 PHP session 文件内容,将序列化字符串转为可读 JSON
  • 分析 session 共享存储(Redis / Memcache)中的数据
  • 构造测试用例,验证后端 SESSION 解析逻辑
  • PHP 与其他语言(Node/Python/Java)之间迁移 session 数据
  • 排查 session 反序列化失败的语法错误位置

安全保障

  • 本地解析:所有转换在浏览器本地完成
  • 只读转换:不修改、不上传任何输入数据
  • 自实现解析器:不依赖第三方库,避免供应链风险
  • 递归深度限制:防止恶意嵌套数据导致栈溢出

常见问题

PHP SESSION 格式与标准 PHP serialize 有什么区别?

PHP SESSION 采用 key|value 形式,键和序列化值之间用 | 分隔,每个键值对紧接上一个的序列化值末尾(值本身以 ; 结尾)。而标准 PHP serialize 输出整体一个序列化字符串(通常是数组 a:N:{...})。两者内部值的编码方式相同,仅外层包裹不同。

转换 JSON 时如何处理 PHP 对象(O 类型)?

PHP 对象在 JSON 中没有直接对应结构,本工具将其转换为带 __class 字段的 JSON 对象,例如 O:3:"Foo":1:{s:1:"x";i:1;} 转换后为 {"__class":"Foo","x":1},保留类名信息便于排查。

解析失败时如何定位错误?

解析器会记录出错时的字符偏移量,并在右下方错误区显示位置(第 N 个字符附近)和具体原因(如"缺少闭合分号"、"字符串长度不匹配"等),方便快速定位修复。

JSON 转 SESSION 时数组键如何处理?

JSON 数组会转为 PHP 数组(a:N:{...}),数组键自动从 0 开始递增(i:0;i:1;...);JSON 对象的字符串键原样保留。混合类型数据可正确处理。