if (!function_exists('http_post')) {
/**
* * 模拟提交数据
* @param $url
* @param string $data null|string|jsonString|array|object
* @param string $method GET|POST|DELETE|PUT
* @param string $type json|form-data
* @param array $header array_header
* @return bool|string
*/
function http_post($url,$data="",$method = 'POST',$type='json',$header=[])
{
//初始化
$ch = curl_init();
$headers = [
'form-data' => ['Content-Type: multipart/form-data'],
'json' => ['Content-Type: application/json'],
];
function toData(&$arr){
$post=[];
foreach ($arr AS $key=>$value){
array_push($post,"{$key}=".urlencode($value));
}
$arr = join('&',$post);
}
$Header=[];
if(!$data) $method='GET';
if($method == 'GET'){
if($data){
if(is_array($data)||is_object($data)) toData($data);
$querystring = http_build_query($data);
$url = $url.(strpos($url,'?') !== false?'&':'?').$querystring;
}
}else{
if(is_array($data)||is_object($data)){
$type='form-data';
toData($data);
}
isset($headers[$type]) && $Header=$headers[$type];
}
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 执行后不直接打印出来
if($method == 'POST'){
curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'POST'); // 请求方式
curl_setopt($ch, CURLOPT_POST, true); // post提交
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); // post的变量
}
if($method == 'PUT'){
curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
}
if($method == 'DELETE'){
curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
}
if(stripos($url,"https://")!==FALSE){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 不从证书中检查SSL加密算法是否存在
}
curl_setopt($ch, CURLOPT_HTTPHEADER, array_merge($Header,$header));
$output = curl_exec($ch); //执行并获取HTML文档内容
$aStatus = curl_getinfo($ch);
curl_close($ch);
if(intval($aStatus["http_code"])==200){
return $output;
}else{
return false;
}
}
}
版权属于:
Tony哥
作品采用:
《
署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
》许可协议授权
评论 (0)