我正在进行Coldfusion项目,我需要从wordpress驱动的数据库中提取一些信息。我需要的一些信息是存储在wp_options表中的序列化数组。我无法弄清楚如何在Coldfusion中反序列化数组数据。
我目前正在使用Coldfusion 8的开发版本。我无法升级到Coldfusion 9,因为我的作品应用程序是基于Coldfusion 8构建的
我只能找到这个关于反序列化CFC的链接http://www.cfinsider.com/index.cfm/2010/5/4/Serializing--Deserializing-in-ColdFusion-9,但它似乎不适用于我传递的数组。
以下是我尝试反序列化的数据示例
a:2:{i:2;a:2:{s:5:"title";s:0:"";s:6:"number";i:5;}s:12:"_multiwidget";i:1;}
任何帮助都会很棒。
答案 0 :(得分:6)
你最好的选择可能是查看Sean Corfield的scripting for ColdFusion项目。我能用它做到以下几点:
<script:php>
<?php
$array = unserialize('a:2:{i:2;a:2:{s:5:"title";s:0:"";s:6:"number";i:5;}s:12:"_multiwidget";i:1;}');
$_COLDFUSION["test"] = json_encode($array);
?>
</script:php>
<cfdump var="#deserializeJSON(variables.test)#">
哪个产生了:
答案 1 :(得分:4)
如果可以将PHP数组序列化为JSON字符串,则可以在CF端使用deserializeJson。
答案 2 :(得分:3)
嗯,这是PHP序列化的结果 - 我假设CF使用完全不同的过程。架构看起来非常简单:
datatype:size:structure
或
numbertype:numbervalue
所以
a:2:{i:2;s:3:"foo"}
表示“大小为2的数组{整数2;大小为3的字符串'foo'}”。请注意,数组可以嵌套,而对象和其他序列化类可能会变得复杂(请参阅PHP's manual on serializing objects)。