0

这是我的cURL POST功能:

public function curlPost($url, $data)
{
    $fields = '';

    foreach($data as $key => $value) { 
      $fields .= $key . '=' . $value . '&'; 
    }

    rtrim($fields, '&');

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, count($data));
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

    $result = curl_exec($ch);
    $info   = curl_getinfo($ch);

    curl_close($ch);
}

$this->curlPost('remoteServer', array(data));

如何POST在远程服务器上读取?

$_POST[]远程服务器正在使用 PHP ......但我应该读什么 var

例如:-$_POST['fields']$_POST['result']

4

2 回答 2

1

您的代码有效,但我建议您添加其他两件事

A.CURLOPT_FOLLOWLOCATION因为 HTTP 302

 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

B.return如果您需要输出结果

return $result ;

例子

function curlPost($url, $data) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
    $result = curl_exec($ch);
    $info = curl_getinfo($ch);
    curl_close($ch);
    return $result;
}

print(curlPost("http://yahoo.com", array()));

另一个例子

    print(curlPost("http://your_SITE", array("greeting"=>"Hello World")));

要阅读您的帖子,您可以使用

 print($_REQUEST['greeting']);

或者

 print($_POST['greeting']);
于 2012-10-15T23:29:21.067 回答
0

作为一个普通的 POST 请求......所有发布的数据都可以在 $_POST 中找到......当然除了文件:)&action=request1在 URL 中添加一个示例

if ($_GET['action'] == 'request1') {

  print_r ($_POST);

}

编辑:要查看 POST 变量,请使用 POST 处理程序文件中的以下内容

if ($_GET['action'] == 'request1') {
  ob_start();
  print_r($_POST);
  $contents = ob_get_contents();
  ob_end_clean();
  error_log($contents, 3, 'log.txt' );
}
于 2012-10-15T23:28:49.753 回答