欢迎光临
AK的小站-记录生活的点滴

php 解决查询ip返回数据输出乱码和截取特定字符(ip地址信息)

一.想查看访客ip并记录ip地址信息,于是查询ip获取结果(第三方api),结果获取的页面显示乱码

二.查看页面编码并更改

打开调用网页,在console中输入document. charset即可查看当前网页编码。

原来页面编码为GBK与当前页面utf8格式不符需转换

转换后

转换代码:

<?php
header('Content-type: text/html; charset=UTF8');
 if (!empty($_SERVER['HTTP_CLIENT_IP']))   
   {
     $ip_address = $_SERVER['HTTP_CLIENT_IP'];
   }
 elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))  
   {
     $ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
   }
 else
   {
     $ip_address = $_SERVER['REMOTE_ADDR'];
   }
$ip = $ip_address;
$url = "http://";
$addr = file_get_contents($url);//获取远程页面
$change =  iconv("GBK", "utf-8//IGNORE",$addr); //远程页面为gbk编码,转化为utf8
//echo $addr;
//echo iconv('GBK','UTF-8',$addr);
echo $change;

三.截取ip地址信息

由于查询ip返回的无用信息过多,所以直接截取需要中文字段,只保留需要的地址信息

完整的截取代码:

$url = "";
$addr = file_get_contents($url);//获取远程页面
$change = iconv("GBK", "utf-8//IGNORE",$addr); //第一次处理,将数据gbk转码为utf-8
$change1 = trim($change);//第二次处理,去除空格
//echo iconv('GBK','UTF-8',$addr);
$change2 = substr($change1,strripos($change1,"addr")+7);//第三次处理,截取addr:(后)7个的字符,粗劣得到地址(从前往后截取)。
$change3 = substr($change2,0,strrpos($change2,'re')-3);//第三次处理,截取g(前)3个的字符,从后往前截取,得到完整的地址。
echo $change3;
赞(0) 请喝奶茶
未经允许不得转载:吾爱AK-哇咔咔AK » php 解决查询ip返回数据输出乱码和截取特定字符(ip地址信息)

觉得文章对你有用,奖励一杯奶茶给我也是可以滴(o゚▽゚)o

微信扫一扫打赏