我在使用Sean Corfield的ColdFusion项目脚本来解决使用ColdFusion对php数组进行desearial化的问题。我在寻找解决方案时在Deserialize PHP array in coldfusion发现了这个方便的自定义标签。但这是我的问题。通过coldfusion查询传递php数组字符串时,我无法使它工作。请参阅下面的问题...
这很好......
<cfsavecontent variable="teststring">a:1:{i:0;a:10:{s:2:"id";s:4:"2152";s:12:"variation_id";s:4:"2153";s:4:"name";s:18:"100 Wiki Backlinks";s:3:"qty";s:1:"1";s:9:"item_meta";a:3:{i:0;a:2:{s:9:"meta_name";s:25:"pa_is-your-website-a-wiki";s:10:"meta_value";s:11:"im-not-sure";}i:1;a:2:{s:9:"meta_name";s:30:"pa_url-to-your-target-web-page";s:10:"meta_value";s:51:"http://www.deluxerubberstamp.com/petid/petidtag.htm";}i:2;a:2:{s:9:"meta_name";s:25:"pa_enter-up-to-5-keywords";s:10:"meta_value";s:68:"pet id tags, animal id tags, pet supplies, dog id tags,cat id tags
";}}s:13:"line_subtotal";s:2:"29";s:17:"line_subtotal_tax";s:1:"0";s:10:"line_total";s:2:"29";s:8:"line_tax";s:1:"0";s:9:"tax_class";s:9:"zero-rate";}}</cfsavecontent>
<script:php>
<?php
$array = unserialize('<cfoutput>#teststring#</cfoutput>');
$_COLDFUSION["greeting"] = json_encode($array);
?>
</script:php>
<cfdump var="#deserializeJSON(greeting)#">
但这不起作用,只是在转储中返回“NO”,好像json无效或者其他东西......
<cfquery datasource="#request.dsname#" username="#request.dsuser#" password="#request.dspassword#" name="getorder" >
SELECT phparrayorderdetail FROM tbl_orders WHERE orderid = '1'
</cfquery>
<cfsavecontent variable="teststring">#trim(getorder.phparrayorderdetail)#</cfsavecontent>
<script:php>
<?php
$array = unserialize('<cfoutput>#teststring#</cfoutput>');
$_COLDFUSION["greeting"] = json_encode($array);
?>
</script:php>
注意我可以使用......
<cfoutput>#getorder.phparrayorderdetail#</cfoutput>
或
<cfdump var="#getorder.phparrayorderdetail#">
在我的浏览器中输出php数组,它与你在上面看到的php数组字符串相同。我实际上可以复制它并将其粘贴到unserialize()函数中,如上所示,再一次脚本工作正常。我无法弄清楚为什么它通过coldfusion查询传递php数组字符串时不起作用。在传递它之前,我是否需要对ColdFusion端的php数组字符串进行其他类型的格式化才能使其工作?
非常感谢任何建议或建议。