// 发送post请求
// @param string $url 请求地址
// @param array $post_data post键值对数据
// @return string
function sendPost($url, $post_data){
// http_build_query()
// 生成URL-encode之后的请求字符串
//
// 备注:
// php5.3的分隔符用的是&,如果目标服务器也是php5.3,那么就不会出错。
// 但是如果目标服务器是java的tomcat或者别的,那么&可能就会处理错误。
// 以下的形式能够避免错误
// http_build_query($post_data, ‘‘, ‘&‘);
// stream_context_create()
// 创建并返回一个流的资源
$username=‘username‘;
$password=‘password‘;
$postData = http_build_query($post_data, ‘‘, ‘&‘);
$options = array(
‘http‘ =>array(
‘method‘=>"POST",
‘header‘=>"Accept-language: en\r\n".
"Cookie: foo=bar\r\n".
"Content-type: application/x-www-form-urlencoded\r\n".
"Authorization: Basic " . base64_encode("$username:$password").‘\r\n‘,
‘content‘ => $postData,
‘timeout‘ => 15 * 60,//超时时间(单位:s)
)
);
//创建并返回一个流的资源
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
return $result;
}