0

だからここに質問があります。私は自分のAPIをPHPCURL投稿でこのように呼び出そうとしています

<?php
        $ch = curl_init();
        $data = array('page' => $pageid);
        $data = json_encode($data);

        $fields = 'data=' . urlencode($data);

        /*echo $fields; ## data=%7B%22page%22%3A%222%22%7D */

        curl_setopt($ch, CURLOPT_URL, 'http://www.myurl.com/api/gallery');
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        $result =curl_exec($ch);

        $products=json_decode($result,true);
?>

そして、zendフレームワークを使用している私のAPIで、私はそのようなデータを受け取りました

<?php
        $data = json_decode($this->_getParam('data',''), true);
        $query = array();
        $query['status'] = '1';
        $query['pid']   = (isset($data['pid']))? $data['pid'] : '';
        $query['search'] = (isset($data['search']))? $data['search'] : '';
        $query['orderby'] = (isset($data['sort']))? $data['sort'] : 'latest';
        $query['page'] = (isset($data['page']))? $data['page'] : '1';
        $query['pagelimit'] = (isset($data['pagelimit']))? $data['pagelimit'] : '2';
?>

クエリで値を確認すると、CURLを使用して渡された「ページ」値を受け取りませんでした。何か問題がありますか?

乾杯

4

1 に答える 1

0

最初に、POST変数を正しく返す_getParamメソッドを確認する必要があります。

次に、1つの実際のjson文字列でjson_decodeを使用する必要があることに注意してください。URLデータ変数($ this-> _ getParam('data'、'')の結果)をデコードしてから、json_decodeに渡す必要があります!

_getParamメソッドが正しく機能すると仮定すると、次のようになります。

$data = json_decode(urldecode($this->_getParam('data','')), true);
$query = array();
.
.
.
于 2012-09-24T05:50:18.697 に答える