CURL +接受$ _POST数据

时间:2011-12-21 08:04:20

标签: php curl

我正在使用Curl执行以下操作:

 $authentication = $_POST['username'] . ':' . $_POST['passwd'];

 $params = array(
            'id' => '12',
            'field1' => 'field1text',
            'field2' => 'field2text',
            'field3' => 'field3text',
            'screenshots' => 'screenshots',
            'videoLinks' => 'videoLinks'
        );  

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, 'http://www.domain.com/scripts/curl/index_curl_general.php');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
        curl_setopt($ch, CURLOPT_POST, true );
        curl_setopt($ch, CURLOPT_USERPWD,$authentication);
        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
        curl_setopt($ch, CURLOPT_REFERER,'http://www.domain.com.au');
        curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/plain')); 
        $result = curl_exec($ch);
        curl_close($ch);
        echo $result;

我发现我可以使用此代码查看用户名和密码 - 在index_curl_index.php的服务器端

 print $_SERVER['PHP_AUTH_USER'];
 print $_SERVER['PHP_AUTH_PW'];

但我似乎能够看到$params数据。我尝试了以下内容:

 var_dump($_POST);
 print_r($_POST);

但它始终显示为空数组。我该如何显示这些数据?并且有更好的方法来传递这些数据吗?

1 个答案:

答案 0 :(得分:0)

curl_setopt($ch, CURLOPT_POSTFIELDS,$temp);

应该是

curl_setopt($ch, CURLOPT_POSTFIELDS,$params);

是否有更好的'传递数据的方式很大程度上取决于你想要实现的目标。 cURL是一个非常强大的库,你可以完成几乎所有的东西。大多数情况下,您也可以使用file_get_contents()来定义context中的HTTP内容,因此有些人认为cURL过度。就个人而言,我更喜欢file_get_contents(实际上没有具体原因),但我不知道任何性能差异等。