直接上代码
/**
*$url 请求地址
*$data 请求参数
*$is_post 是否post请求
*/
public function seedHttp($url, $data, $is_post)
{
//初使化init方法
$ch = curl_init();
//指定URLCURLOPT_POSTFIELDS
curl_setopt($ch, CURLOPT_URL, $url);
//设定请求后返回结果
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//声明使用POST方式来进行发送
if ($is_post) {
curl_setopt($ch, CURLOPT_POST, 1);
}
//发送什么数据呢
if ($data != null || $data != '') {
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
//忽略证书
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
//忽略header头信息
curl_setopt($ch, CURLOPT_HEADER, 0);
//设置超时时间
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
//发送请求
$output = curl_exec($ch);
//关闭curl
curl_close($ch);
//返回数据
return $output;
}
/**
* body 传参 json 格式,默认post传参
*$url 请求地址
*$data 请求参数
*/
public function httpRequest($url, $data = null)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if (!empty($data)) {
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json'
));
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
获取 IP 归属地
function getIpCity(string $ip = '')
{
// 可以自己找第三方接口,返回数据不一样
$url = "http://whois.pconline.com.cn/ip.jsp?ip=".$ip;
$res = file_get_contents($url);
// 因为这个接口返回的值gb2312编码,且有换行符,所以做以下处理
return preg_replace("/\s/","", iconv("gb2312", "utf-8", $res));
}