2010-12-22 151 views
4

我正在開發一個Coldfusion項目,我需要從wordpress動力數據庫中提取一些信息。我需要的一些信息是存儲在wp_options表中的序列化數組中。我無法弄清楚如何在Coldfusion中反序列化數組數據。在Coldfusion中反序列化PHP數組

目前,我正在使用ColdFusion 8的開發版本,因爲我的作品應用程序是建立在ColdFusion的8

我只能夠找到這個鏈接http://www.cfinsider.com/index.cfm/2010/5/4/Serializing--Deserializing-in-ColdFusion-9其中談到我不能升級到ColdFusion的9關於反序列化CFC,但它似乎不適用於我傳遞的數組。

這裏是我試圖deserialze

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

任何幫助將是巨大的數據的一個例子。

回答

4

如果您可以將PHP數組序列化爲JSON字符串,則可以在CF端使用deserializeJson。

+1

如果可能的話我會走這條路。 – Christian 2010-12-22 16:36:56

+1

同意 - PHP可以導出JSON,幾乎所有其他語言都可以導入它。這絕對是首選格式。 – Spudley 2010-12-22 16:39:07

3

那麼,這是PHP序列化的結果 - 我假設CF使用完全不同的過程。模式似乎相當簡單:

datatype:size:structure 

numbertype:numbervalue 

所以

a:2:{i:2;s:3:"foo"} 

將意味着 「大小爲2的數組{整數2;尺寸3的串 '富'}」。請注意,數組可以嵌套,並且對象和其他序列化類可能會變得複雜(請參見PHP's manual on serializing objects)。

6

你最好的選擇可能是看看肖恩科菲爾德的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)#"> 

它生產:

alt text