Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在coldfusion中反序列化PHP数组_Php_Wordpress_Coldfusion - Fatal编程技术网

在coldfusion中反序列化PHP数组

在coldfusion中反序列化PHP数组,php,wordpress,coldfusion,Php,Wordpress,Coldfusion,我正在从事一个Coldfusion项目,需要从wordpress支持的数据库中提取一些信息。我需要的一些信息存储在wp_options表中的序列化数组中。我不知道如何在Coldfusion中反序列化数组数据 我目前正在使用Coldfusion 8的开发版本。我无法升级到Coldfusion 9,因为我的works应用程序是基于Coldfusion 8构建的 我只能找到这个关于反序列化CFC的链接,但在我传递的数组上它似乎不起作用 下面是我试图反序列化的数据示例 a:2:{i:2;a:2:{s:5

我正在从事一个Coldfusion项目,需要从wordpress支持的数据库中提取一些信息。我需要的一些信息存储在wp_options表中的序列化数组中。我不知道如何在Coldfusion中反序列化数组数据

我目前正在使用Coldfusion 8的开发版本。我无法升级到Coldfusion 9,因为我的works应用程序是基于Coldfusion 8构建的

我只能找到这个关于反序列化CFC的链接,但在我传递的数组上它似乎不起作用

下面是我试图反序列化的数据示例

a:2:{i:2;a:2:{s:5:"title";s:0:"";s:6:"number";i:5;}s:12:"_multiwidget";i:1;}

任何帮助都会很好。

好吧,这是PHP序列化的结果-我假设CF使用完全不同的过程。模式似乎非常简单:

datatype:size:structure

所以


表示“大小为2{integer 2;字符串'foo'大小为3}的数组”。请注意,数组可以嵌套,对象和其他序列化类会使事情变得复杂(请参阅)。

如果可以将PHP数组序列化为JSON字符串,则可以在CF端使用反序列化JSON。

您最好的选择可能是查看Sean Corfield的项目。我可以用它做以下事情:

<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)#">


如果可能的话,我会遵循这条路径。同意-PHP可以导出JSON,几乎所有其他语言都可以导入它。这绝对是首选的格式。谢谢,这是一个简单的解决方案,我已经仔细看过了。我能够编写一个快速插件,将小部件数据的副本存储在JSON中。您可以更进一步,在CF中设置字符串,然后在php端像这样将其拉出:$array=unserialize($_COLDFUSION[“serializedString]”);
a:2:{i:2;s:3:"foo"}
<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)#">