0

ColdFusion プロジェクトの Sean Corfield のスクリプトを使用して、ColdFusion を使用して php 配列をデシリアライズする際に問題が発生しています。解決策を探しているときに、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)#">

しかし、これは機能せず、json が有効でないかのように、単に "NO" をダンプに返します...

<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 配列文字列に対して行う必要がある他の種類のフォーマットはありますか?

アドバイスや推奨事項をお寄せいただきありがとうございます。

4

0 に答える 0