无限星辰工作室-客户无限互联网动力之源

标题: 通过IP获取用户所在区域 [打印本页]

作者: crx349    时间: 2018-6-10 17:08
标题: 通过IP获取用户所在区域
实现有ip或者用户区域,使用的是淘宝接口,速度非常快,同时API输出跨域问题完美解决。

代码如下:
  1. <?php
  2. /**
  3. * 获取ip 接口
  4. * @access public 以淘宝的接口为实例
  5. */
  6. function get_ip_info($ip) {
  7.     $curl = curl_init(); //这是curl的handle
  8.     //下面是设置curl参数
  9.     $url = "http://ip.taobao.com/service/getIpInfo.php?ip=$ip";
  10.     curl_setopt($curl, CURLOPT_URL, $url);
  11.     curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
  12.     curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 2);
  13.     curl_setopt($curl, CURLOPT_HEADER, 0); //don't show header
  14.     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //相当关键,这句话是让curl_exec($ch)返回的结果可以进行赋值给其他的变量进行,json的数据操作,如果没有这句话,则curl返回的数据不可以进行人为的去操作(如json_decode等格式操作)
  15.     curl_setopt($curl, CURLOPT_TIMEOUT, 2);
  16.     //这个就是超时时间了
  17.     $data = curl_exec($curl);
  18.    // return json_decode($data, true);
  19.     return $data;
  20. }

  21. /**
  22. * 对内容进行安全处理
  23. * @param string|array $string 要处理的字符串或者数组
  24. * @param $string $flags 指定标记
  25. */
  26. function dhtmlspecialchars($string, $flags = null) {
  27.     if(is_array($string)) {
  28.         foreach($string as $key => $val) {
  29.             $string[$key] = dhtmlspecialchars($val, $flags);
  30.         }
  31.     } else {
  32.         if($flags === null) {
  33.             $string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string);
  34.             if(strpos($string, '&#') !== false) {
  35.                 $string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4}));)/', '&\\1', $string);
  36.             }
  37.         } else {
  38.             if(PHP_VERSION < '5.4.0') {
  39.                 $string = htmlspecialchars($string, $flags);
  40.             } else {
  41.                 if(strtolower(CHARSET) == 'utf-8') {
  42.                     $charset = 'UTF-8';
  43.                 } else {
  44.                     $charset = 'ISO-8859-1';
  45.                 }
  46.                 $string = htmlspecialchars($string, $flags, $charset);
  47.             }
  48.         }
  49.     }
  50.     return $string;
  51. }

  52. $ip = dhtmlspecialchars($_GET['ip']);
  53. header("Access-Control-Allow-Origin:*");
  54. Header("Access-Control-Allow-Credentials: true");
  55. header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
  56. header('Access-Control-Allow-Methods: GET, POST, PUT');
  57. echo get_ip_info($ip);
复制代码



作者: crx349    时间: 2018-6-10 19:58

高级例子:JS直接嵌套使用





欢迎光临 无限星辰工作室-客户无限互联网动力之源 (https://xmspace.net/) Powered by Discuz! X3.4