我有一个通过PHP (WordPress) 序列化的字符串数组,类似于以下内容:
a:2:{i:0;s:12:"Sample array";i:1;a:2:{i:0;s:5:"Apple";i:1;s:6:"Orange";}}
我该如何在C#中对这个字符串进行反序列化?
如果我将该字符串复制到https://www.unserialize.com,它可以成功转换结构。
谢谢!
我有一个通过PHP (WordPress) 序列化的字符串数组,类似于以下内容:
a:2:{i:0;s:12:"Sample array";i:1;a:2:{i:0;s:5:"Apple";i:1;s:6:"Orange";}}
我该如何在C#中对这个字符串进行反序列化?
如果我将该字符串复制到https://www.unserialize.com,它可以成功转换结构。
谢谢!
// Parse a local file and get structure in memory
var data = PhpSerializedValue.FromFile("path/to/local/file.php_serialized_value");
unserialize
然后json_encode
。然后您可以在C#中解码它。 - AbraCadaverserialize()
函数不应该曝露给用户空间。如果有机会,你永远不应该依赖它,而且在任何情况下都不应该反序列化用户提交的值。如果你真的想做这件坏事,那么格式通常是{type}:{size}:{value}
,分隔符为;
。数组条目是键值对。不可打印/特殊字符没有被转义或特别处理,甚至成为格式的一部分。祈祷你永远不要遇到序列化的对象。祝好运。 - Sammitch