PHP CURL POST字段

PHP CURL POST字段,php,zend-framework,Php,Zend Framework,这就是问题所在。我正试图用PHP CURL post调用我的api,就像这样 <?php $ch = curl_init(); $data = array('page' => $pageid); $data = json_encode($data); $fields = 'data=' . urlencode($data); /*echo $fields; ## data=%7B%22page%22%

这就是问题所在。我正试图用PHP CURL post调用我的api,就像这样

<?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传递的“page”值。。我做错什么了吗


干杯首先,您应该检查正确返回POST变量的_getParam方法

然后,请注意,您应该在一个真正的json字符串上使用json_解码!您应该解码url数据变量($this->_getParam('data','')的结果),然后将其传递给json_decode

我假设您的_getParam方法工作正常, 然后:


是否确实要传递
?data={some:object,goes:here}
是的,我只想保留json格式尝试传递{object},然后转储$\u POST以查看得到的内容。尝试传递此数据={“page”:“4”},不起作用:在解码json之前尝试调用了吗?
$data = json_decode(urldecode($this->_getParam('data','')), true);
$query = array();
.
.
.