当从ColdFusion查询传入Php数组字符串时,Sean Corfield为ColdFusion项目标记编写的脚本不起作用

当从ColdFusion查询传入Php数组字符串时,Sean Corfield为ColdFusion项目标记编写的脚本不起作用,php,coldfusion,Php,Coldfusion,我在使用Sean Corfield的ColdFusion脚本项目来使用ColdFusion对php数组进行反序列化时遇到了一个问题。我在寻找解决方案时发现了这个方便的自定义标记。但这是我的问题。当通过coldfusion查询传入php数组字符串时,我无法让它工作。见我的问题下面 这个很好用 <cfsavecontent variable="teststring">a:1:{i:0;a:10:{s:2:"id";s:4:"2152";s:12:"variation_id";s:

我在使用Sean Corfield的ColdFusion脚本项目来使用ColdFusion对php数组进行反序列化时遇到了一个问题。我在寻找解决方案时发现了这个方便的自定义标记。但这是我的问题。当通过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>

在我的浏览器中输出php数组,它与上面看到的php数组字符串相同。实际上,我可以复制它并将其粘贴到如上所示的unserialize函数中,并且脚本再次正常工作。我不明白为什么它在通过coldfusion查询传入php数组字符串时不起作用。在传递php数组字符串以使其正常工作之前,是否需要对ColdFusion端的php数组字符串进行其他类型的格式化


非常感谢您的建议

取消序列化不抛出任何错误?通过在标记和一个非常旧的、未维护的库之间放置teststring,您可以调试PHP作为参数实际得到的内容吗?该库是为CF8创建的,从那以后就没有更新过。它是作为概念的证明而写的,从来没有打算特别复杂。我欢迎任何人接管并更新它。也就是说。。。字符串表示形式之间一定存在一些差异,而您只是看不到。将原始的cfsavecontent添加回teststring1中的存储中,然后在运行时比较字符串,看看CFML是否认为它们相等-我打赌它们不相等。大家好,非常感谢您的宝贵反馈。大家好,非常感谢您的宝贵反馈@肖恩·科菲尔德:谢谢你的建议。我试过了,你是对的!当比较从ColdFusion查询返回的相同值和作为变量的相同硬编码值时,ColdFusion认为这两个值不同。很奇怪!我不明白。因为我可以输出查询返回的值,然后将其复制并粘贴为硬编码值,它就可以工作了。
<cfdump var="#getorder.phparrayorderdetail#">