php发送post请求函数分享

  

复制代码 代码如下:

  function do_post_request($url, $data, $optional_headers = null)

  {

  $params = array('http' => array(

  'method' => 'POST',

  'content' => $data

  ));

  if ($optional_headers !== null) {

  $params['http']['header'] = $optional_headers;

  }

  $ctx = stream_context_create($params);

  $fp = @fopen($url, 'rb', false, $ctx);

  if (!$fp) {

  throw new Exception("Problem with $url, $php_errormsg");

  }

  $response = @stream_get_contents($fp);

  if ($response === false) {

  throw new Exception("Problem reading data from $url, $php_errormsg");

  }

  return $response;

  }

  用法如下:

  

复制代码 代码如下:

  //json字符串

  $data = "{...}";

  //转换成数组

  $data=json_decode($data,true);

  $postdata = http_build_query($data);

  do_post_request("http://localhost",$postdata);