我这个方法比较笨 , 但是有效果 , 百度很多都是有问题的 ,基本都是获取地址的API的问题,
我用的是TP , 所以我是把方法放在common中的 , 然后首页调用,
第一个 , 获取访客IP , 这个不多说 , 基本都行
//获取访客ip
实例
functiongetip(){
if(getenv("HTTP_CLIENT_IP")&&strcasecmp(getenv("HTTP_CLIENT_IP"),"unknown")){
$ip=getenv("HTTP_CLIENT_IP");
}elseif(getenv("HTTP_X_FORWARDED_FOR")&&strcasecmp(getenv("HTTP_X_FORWARDED_FOR"),"unknown")){
$ip=getenv("HTTP_X_FORWARDED_FOR");
}elseif(getenv("REMOTE_ADDR")&&strcasecmp(getenv("REMOTE_ADDR"),"unknown")){
$ip=getenv("REMOTE_ADDR");
}elseif(isset($_SERVER['REMOTE_ADDR'])&&$_SERVER['REMOTE_ADDR']&&strcasecmp($_SERVER['REMOTE_ADDR'],"unknown")){
$ip=$_SERVER['REMOTE_ADDR'];
}else{
$ip="unknown";
}
return$ip;
}
运行实例 »
点击 "运行实例" 按钮查看在线实例
第二个获取用户地址 , 获取地址你需要准备百度接口 , 去上面可以申请免费的ak , 复制到$sk即可.不过一天免费的是有限制 .
申请地址 : /index.php?title=jspopular3.0
实例
//根据ip获取城市、
functionget_user_addr($ip){
$ak='百度申请的ak';
$url="http://api./location/ip?ak=$ak&ip=$ip";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$output=curl_exec($ch);
if(curl_errno($ch)){
echo'CURLERRORCode:'.curl_errno($ch).',reason:'.curl_error($ch);
}
curl_close($ch);
$info=json_decode($output,true);
if($info['status']=="0"){
$addr_info=$info['content']['address_detail']['province'].$info['content']['address_detail']['city'];
}
return$addr_info;
}
运行实例 »
点击 "运行实例" 按钮查看在线实例
第三个获取手机或浏览器信息, 这个方法比较笨 ,不过是可以用的 , 返回手机牌子,或者浏览器的类型
实例
//获取用户浏览器类型
functionis_mobile(){
$user_agent=$_SERVER['HTTP_USER_AGENT'];
if(stripos($user_agent,"iPhone")!==false){
$brand='iPhone';
}elseif(stripos($user_agent,"SAMSUNG")!==false||stripos($user_agent,"Galaxy")!==false||strpos($user_agent,"GT-")!==false||strpos($user_agent,"SCH-")!==false||strpos($user_agent,"SM-")!==false){
$brand='三星';
}elseif(stripos($user_agent,"Huawei")!==false||stripos($user_agent,"Honor")!==false||stripos($user_agent,"H60-")!==false||stripos($user_agent,"H30-")!==false){
$brand='华为';
}elseif(stripos($user_agent,"Lenovo")!==false){
$brand='联想';
}elseif(strpos($user_agent,"MI-ONE")!==false||strpos($user_agent,"MI1S")!==false||strpos($user_agent,"MI2")!==false||strpos($user_agent,"MI3")!==false||strpos($user_agent,"MI4")!==false||strpos($user_agent,"MI-4")!==false){
$brand='小米';
}elseif(strpos($user_agent,"HMNOTE")!==false||strpos($user_agent,"HM201")!==false){
$brand='红米';
}elseif(stripos($user_agent,"Coolpad")!==false||strpos($user_agent,"8190Q")!==false||strpos($user_agent,"5910")!==false){
$brand='酷派';
}elseif(stripos($user_agent,"ZTE")!==false||stripos($user_agent,"X9180")!==false||stripos($user_agent,"N9180")!==false||stripos($user_agent,"U9180")!==false){
$brand='中兴';
}elseif(stripos($user_agent,"OPPO")!==false||strpos($user_agent,"X9007")!==false||strpos($user_agent,"X907")!==false||strpos($user_agent,"X909")!==false||strpos($user_agent,"R831S")!==false||strpos($user_agent,"R827T")!==false||strpos($user_agent,"R821T")!==false||strpos($user_agent,"R811")!==false||strpos($user_agent,"R")!==false){
$brand='OPPO';
}elseif(strpos($user_agent,"HTC")!==false||stripos($user_agent,"Desire")!==false){
$brand='HTC';
}elseif(stripos($user_agent,"vivo")!==false){
$brand='vivo';
}elseif(stripos($user_agent,"K-Touch")!==false){
$brand='天语';
}elseif(stripos($user_agent,"Nubia")!==false||stripos($user_agent,"NX50")!==false||stripos($user_agent,"NX40")!==false){
$brand='努比亚';
}elseif(strpos($user_agent,"M045")!==false||strpos($user_agent,"M032")!==false||strpos($user_agent,"M355")!==false){
$brand='魅族';
}elseif(stripos($user_agent,"DOOV")!==false){
$brand='朵唯';
}elseif(stripos($user_agent,"GFIVE")!==false){
$brand='基伍';
}elseif(stripos($user_agent,"Gionee")!==false||strpos($user_agent,"GN")!==false){
$brand='金立';
}elseif(stripos($user_agent,"HS-U")!==false||stripos($user_agent,"HS-E")!==false){
$brand='海信';
}elseif(stripos($user_agent,"Nokia")!==false){
$brand='诺基亚';
}
if((false==strpos($user_agent,'MSIE'))&&(strpos($user_agent,'Trident')!==FALSE)){
$brand='InternetExplorer11.0';
}
if(false!==strpos($user_agent,'MSIE10.0')){
$brand='InternetExplorer10.0';
}
if(false!==strpos($user_agent,'MSIE9.0')){
$brand='InternetExplorer9.0';
}
if(false!==strpos($user_agent,'MSIE8.0')){
$brand='InternetExplorer8.0';
}
if(false!==strpos($user_agent,'MSIE7.0')){
$brand='InternetExplorer7.0';
}
if(false!==strpos($user_agent,'MSIE6.0')){
$brand='InternetExplorer6.0';
}
if(false!==strpos($user_agent,'Edge')){
$brand='微软';
}
if(false!==strpos($user_agent,'Firefox')){
$brand='火狐';
}
if(false!==strpos($user_agent,'Chrome')){
$brand='谷歌';
}
if(false!==strpos($user_agent,'Safari')&&false===strpos($user_agent,'Chrome')){
$brand='苹果';
}
if(false!==strpos($user_agent,'Opera')){
$brand='欧朋';
}
if(false!==strpos($user_agent,'360SE')){
$brand='360';
}
//微信浏览器
if(false!==strpos($user_agent,'MicroMessage')){
$brand='QQ';
}
return$brand;
}
运行实例 »
点击 "运行实例" 按钮查看在线实例
效果:
php取当前是pc还是手机号 PHP 获取访问用户的 IP 地址 访问设备(手机还是PC)并返回手机类型和PC浏览器类型...