我正在使用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);
但它始终显示为空数组。我该如何显示这些数据?并且有更好的方法来传递这些数据吗?
答案 0 :(得分:0)
curl_setopt($ch, CURLOPT_POSTFIELDS,$temp);
应该是
curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
是否有更好的'传递数据的方式很大程度上取决于你想要实现的目标。 cURL是一个非常强大的库,你可以完成几乎所有的东西。大多数情况下,您也可以使用file_get_contents()来定义context中的HTTP内容,因此有些人认为cURL过度。就个人而言,我更喜欢file_get_contents
(实际上没有具体原因),但我不知道任何性能差异等。