php 根据ip地址获取地区信息

突然发现新浪和淘宝的接口都不能用了 所以找到了这个 挺快的 感兴趣的可以试试


public static function get_info($ip)
{
    $url = "http://whois.pconline.com.cn/jsFunction.jsp?callback=jsShow&ip=" . $ip;

    $ch = curl_init();
    //设置选项,包括URL
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);

    //执行并获取HTML文档内容
    $output = curl_exec($ch);
    //释放curl句柄
    curl_close($ch);
    $info = iconv('GB2312', 'UTF-8', $output); //因为是js调用 所以接收到的信息为字符串,注意编码格式
    return  ArrayHelper::substr11($info);  //ArrayHelper是助手函数 可以将下面的方法追加到上面
}

public static function substr11($str)
{
    preg_match_all("/[\x{4e00}-\x{9fa5}]+/u", $str, $regs);//preg_match_all(“正则表达式”,"截取的字符串","成功之后返回的结果集(是数组)")
    $s = join('', $regs[0]);//join("可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。","要组合为字符串的数组。")把数组元素组合为一个字符串
    $s = mb_substr($s, 0, 80, 'utf-8');//mb_substr用于字符串截取,可以防止中文乱码的情况
    return $s;
}

你可能感兴趣的:(php 根据ip地址获取地区信息)