PHP的CURL请求, get/post, 及 PHP 获取IP 归属地

直接上代码


	/**
	*$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));
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

siner.li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值