2015-07-08 15:30:56 whq19890827 阅读数 2255

        最近项目,要判断用户的手机是安卓的还是ios的,搜了一下相关的资料,最终获得的结果。事实证明,是有效的!主要是要用到HTTP_USER_AGENT,它表示的意思是用来检查浏览页面的访问者在用什么操作系统(包括版本号)浏览器(包括版本号)和用户个人偏好的代码。

      监测代码如下:

function get_device_type()
{
 //全部变成小写字母
 $agent = strtolower($_SERVER['HTTP_USER_AGENT']);
 $type = 'other';
 //分别进行判断
 if(strpos($agent, 'iphone') || strpos($agent, 'ipad'))
{
   $type = 'ios';
 } 

 if(strpos($agent, 'android'))
{
   $type = 'android';
 }
 return $type;
}

通过调用这个函数,就能获取到手机的类型。

2019-09-19 09:59:26 qq_35649305 阅读数 53

本文介绍了PHP判断手机是IOS还是Android的2个小实例,要判断用户的手机是安卓的还是ios的,搜了一下相关的资料,最终获得的结果分享给大家。

实例1:主要是要用到HTTP_USER_AGENT,它表示的意思是用来检查浏览页面的访问者在用什么操作系统(包括版本号)浏览器(包括版本号)和用户个人偏好的代码。
监测代码如下:

function get_device_type()
{
//全部变成小写字母
$agent = strtolower($_SERVER['HTTP_USER_AGENT']);
$type = 'other';
//分别进行判断
if(strpos($agent, 'iphone') || strpos($agent, 'ipad'))
{
$type = 'ios';
} 

if(strpos($agent, 'android'))
{
$type = 'android';
}
return $type;
}

实例2:只需要一个判断就好

<?php
if(strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone')||strpos($_SERVER['HTTP_USER_AGENT'], 'iPad')){
 echo 'systerm is IOS';
}else if(strpos($_SERVER['HTTP_USER_AGENT'], 'Android')){
 echo 'systerm is Android';
}else{
 echo 'systerm is other';
}
?>

再为大家分享一个与本主题关系不大的小实例:
php判断页面是否是微信打开

$user_agent = $_SERVER['HTTP_USER_AGENT']; 
if (strpos($user_agent, 'MicroMessenger') === false) { 
 // 非微信浏览器禁止浏览 
 echo "HTTP/1.1 401 Unauthorized"; 
} else { 
 // 微信浏览器,允许访问 
 echo "MicroMessenger"; 
 // 获取版本号 
 preg_match('/.*?(MicroMessenger\/([0-9.]+))\s*/', $user_agent, $matches); 
 echo '<br>Version:'.$matches[2]; 
}
2019-03-30 11:37:09 qq_36025814 阅读数 117

                                                                          PHP判断请求来自哪个操作系统

1、需求:用PHP写了一个接口/son/get。Android,IOS,小程序都需要调用。现在判断是否是小程序调用的接口,如果是,就做特殊处理(比如少返回一些数据)。

2、思路:刚开始我想,需要判断是不是小程序那是不是需要小程序传一个参数过来标识呢。后来发现思路错误,PHP自带的超全局变量 $_SERVER 中就能够区分来源。

3、获取操作系统版本。

function getSystem() {	// 获取操作系统版本
	$agent = $_SERVER ['HTTP_USER_AGENT'];
	$platform = '';
	$version = '';
	if (preg_match ( '/win/i', $agent )) {
		$platform = 'Win';
		if (preg_match ( '/nt 10/i', $agent )) {
			$version = '10';
		} else if (preg_match ( '/nt 6.3/i', $agent )) {
			$version = '8.1';
		} else if (preg_match ( '/nt 6.2/i', $agent )) {
			$version = '8';
		} else if (preg_match ( '/nt 6.1/i', $agent )) {
			$version = '7';
		} else if (preg_match ( '/nt 6.0/i', $agent )) {
			$version = 'Vista';
		} else if (preg_match ( '/nt 5.2/i', $agent )) {
			$version = '2003';
		} else if (preg_match ( '/nt 5.1/i', $agent )) {
			$version = 'XP';
		} else if (preg_match ( '/nt 5.0/i', $agent )) {
			$version = '2000';
		} else if (preg_match ( '/nt/i', $agent )) {
			$version = 'NT';
		} else if (preg_match ( '/32/i', $agent )) {
			$version = '32';
		} else if (strpos ( $agent, '95' )) {
			$version = '95';
		} else if (preg_match ( '/win 9x/i', $agent ) && strpos ( $agent, '4.90' )) {
			$version = 'ME';
		} else if (preg_match ( '/98/i', $agent )) {
			$version = '98';
		}
	}
    else if (preg_match ( '/MicroMessenger/i', $agent )) {
        $platform = 'Program';//小程序
    }
	else if (preg_match ( '/Android/i', $agent )) {
		$platform = 'Android';
	} else if (preg_match ( '/iPhone/i', $agent )) {
		$platform = 'iPhone';
	} else if (preg_match ( '/linux/i', $agent )) {
		$platform = 'Linux';
	} else if (preg_match ( '/unix/i', $agent )) {
		$platform = 'Unix';
	} else if (preg_match ( '/sun/i', $agent ) && preg_match ( '/os/i', $agent )) {
		$platform = 'SunOS';
	} else if (preg_match ( '/ibm/i', $agent ) && preg_match ( '/os/i', $agent )) {
		$platform = 'IBM OS/2';
	} else if (strpos ( $agent, 'Macintosh' )) {
		$platform = 'Mac';
	} else if (preg_match ( '/PowerPC/i', $agent )) {
		$platform = 'PowerPC';
	} else if (preg_match ( '/AIX/i', $agent )) {
		$platform = 'AIX';
	} else if (preg_match ( '/HPUX/i', $agent )) {
		$platform = 'HPUX';
	} else if (preg_match ( '/NetBSD/i', $agent )) {
		$platform = 'NetBSD';
	} else if (preg_match ( '/BSD/i', $agent )) {
		$platform = 'BSD';
	} else if (preg_match ( '/OSF1/i', $agent )) {
		$platform = 'OSF1';
	} else if (preg_match ( '/IRIX/i', $agent )) {
		$platform = 'IRIX';
	} else if (preg_match ( '/FreeBSD/i', $agent )) {
		$platform = 'FreeBSD';
	} else if (preg_match ( '/teleport/i', $agent )) {
		$platform = 'teleport';
	} else if (preg_match ( '/flashget/i', $agent )) {
		$platform = 'flashget';
	} else if (preg_match ( '/webzip/i', $agent )) {
		$platform = 'webzip';
	} else if (preg_match ( '/offline/i', $agent )) {
		$platform = 'offline';
	}
	$arr = array (
			'platform' => $platform,
			'version' => $version 
	);
	return $arr;
}

4、判断来源是否是小程序

情况一:只有一个接口执行【此操作】,直接在该方法中判断。

class Son extends Api{
    function get(){
	$system = getSystem();
	if($system['platform']=='Program'){	//如果来源是小程序
	    /* 处理返回给小程序的数据 */
	}
    }
}

情况二:多个接口执行【此操作】,则把判断写到他们的父类属性[ $is_less ]中。

class Api{
    protected $is_less = 0;	//是否少返回
    protected function init(){
	$system = getSystem();
	if($system['platform']=='Program'){	//如果来源是小程序
	    $this->is_less = 1;
	}
    }
}
//然后在子类中判断该属性是否为1:
class Son extends Api{
    function get(){
	if($this->is_less == 1){
	    /* 处理返回给小程序的数据 */
	}
    }
}

情况三:【此操作】是可变的操作,可能由于需求变动不执行【此操作】,需要小程序返回的数据和其他端一样。
为了避免改代码,我就在后台加一个配置:return_less 是否少返回:1是,0否。当这2个条件都满足的时候,才执行【此操作】。
如果不执行【此操作】,把配置 return_less 改为 0 即可。

class Api{
    protected $is_less = 0;	//是否少返回
    protected function init(){
	$system = getSystem();
	if($system['platform']=='Program'){	//如果来源是小程序
	    $return_less = ConfigModel::getConfig('return_less');//如果配置的是少返回数据
	    if($return_less==1){
		$this->is_less = 1;
	    }
	}
    }
}
//然后在子类中判断该属性是否为1:
class Son extends Api{
    function get(){
	if($this->is_less == 1){
	    /* 处理返回给小程序的数据 */
	}
    }
}

5、备注
【此操作】是否是小程序调用的接口,如果是,就做特殊处理(比如少返回一些数据)。

 

2016-08-28 11:35:57 lvchao1122 阅读数 4305

iOS 的APP在开发的过程中,有时候为了bug的跟踪,需要收集用户使用手机的设备,手机系统版本,手机型号,以及应用版本,应用信息等等。这些的信息便于开发者诊断问题,是能够通过开发api可以获取到的,iOS的SDK中提供了 UIDevice,NSBundle,NSLocale.

01 :UIDevice 帮助我们全方位的了解所使用的设备的信息,

   A:NSString *userPhoneNameStr = [[UIDevice currentDevice] name];//手机名称

  B:NSString *deviceNameStr = [[UIDevice currentDevice] systemName];//手机系统名称
  C:NSString *systemVersionStr = [[UIDevice currentDevice] systemVersion];//手机系统版本号

  D: NSString *phoneModelStr = [[UIDevice currentDevice] model];//类型 是模拟器还是真机

  E:NSString *phoneModelStr = [[UIDevice currentDevice] model];//类型 是模拟器还是真机

  F:NSString *phoneUDIDStr = [[UIDevice currentDevice] model];//设备唯一标示码


02:NSBundle ,这是一个目录,我们称之为程序的main bundle,通过这个目录获取应用的信息,比如说应用的名称,版本号,应用软件的版本。

     //app 应用信息的获取字典类型,

    NSDictionary * dicInfo =[[NSBundle mainBundle] infoDictionary]; 
    
    NSString * appNameStr =[dicInfo objectForKey:@"CFBundleName"]; //当前应用名称
    NSString * appVersionStr =[dicInfo objectForKey:@"CFBundleShortVersionString"];//当前应用版本
    NSString * appBuildStr =[dicInfo objectForKey:@"CFBundleVersion"];//当前应用版本号码
    NSString * appXcodeStr =[dicInfo objectForKey:@"DTXcode"];//Xcode 版本
    NSString * appSDKNameStr = [dicInfo objectForKey:@"DTSDKName"];//SDK 的版本。

    NSLog(@"01:当前应用名称:%@",appNameStr);

    NSLog(@"02:当前应用版本:%@",appVersionStr);

    NSLog(@"03:当前应用版本号:%@",appBuildStr);

    NSLog(@"04:开发的Xcode版本:%@",appXcodeStr);

    NSLog(@"05:SDK的版本:%@",appSDKNameStr);

标注:只选择了几个经常用到的信息,dicInfo一共29个值,

  03NSLocale  可以获取用户的本地化信息的设置,比如说:国家,语言,日期的格式,提供正确的地理位置。

2016-08-08 10:40:18 myhuashengmi 阅读数 3964

如今上网的渠道是越来越多了,不再局限于PC互联网端了,如今使用的手机上网,IPAD,IPHONE等等也作为了主流,除了上网的客户端变得多样外,还有用户的操作系统也变得多样,虽然windows还是主流,但是现在还有比较专业的设计人员用的是mac,另外手机操作系统 android 也是作为手机主流操作系统来供用户来访问的。

既然上网的渠道变得多样化,用户使用的操作系统和设备也多了起来,这些终端的信息对于我们用户来说并没哪么重要,我们只要可以用来上网就行了,体验好就可以,但这些信息对于专业的SEO人员或者是数据分析师来说,却是不可缺少的,因为只有通过了解用户通过什么方式,什么渠道进入到我们的产品站点或者是 产品APP,当整个数据都一目明了的时候,我们就可以进行对产品进行有效的广告投放,当然这个只是简单的获取访问的操作系统和IOS的设备,更详细的还可以进行获取访问人数的年龄,地域,性别等等,这里就不再进行更为详细的介绍了。

那么下面仅是一个简单的PHP判断用户访问的操作系统,以及IOS设备的PHP实例函数,其中集成了 windows nt,mac,ipod,ipad等主流系统和IOS设备,可以根据自己的情况进行修改,将其函数直接包含到 php 页面中即可返回相应信息。

function getOS()
{
$agent = strtolower($_SERVER[‘HTTP_USER_AGENT’]);

if(strpos($agent, ‘windows nt’)) {
$platform = ‘windows';
} elseif(strpos($agent, ‘macintosh’)) {
$platform = ‘mac';
} elseif(strpos($agent, ‘ipod’)) {
$platform = ‘ipod';
} elseif(strpos($agent, ‘ipad’)) {
$platform = ‘ipad';
} elseif(strpos($agent, ‘iphone’)) {
$platform = ‘iphone';
} elseif (strpos($agent, ‘android’)) {
$platform = ‘android';
} elseif(strpos($agent, ‘unix’)) {
$platform = ‘unix';
} elseif(strpos($agent, ‘linux’)) {
$platform = ‘linux';
} else {
$platform = ‘other';
}

return $platform;
}

PHP判断手机系统

阅读数 381

没有更多推荐了,返回首页