php如何php判断用户是否登录手机浏览还是web浏览

我们可以通过userAgent来判断,比如检测某些关键字,例如:AppleWebKit*****Mobile或AppleWebKit,需要注意的是有些浏览器的userAgent中并不包含AppleWebKit关键字,可能会是Linux,UCBrowser等等。1.
下面是Javascript代码:
&script type="text/javascript"&
* 智能机浏览器版本信息:
var browser={
versions:function(){
var u = navigator.userAgent, app = navigator.appV
return {//移动终端浏览器版本信息
trident: u.indexOf('Trident') & -1, //IE内核
presto: u.indexOf('Presto') & -1, //opera内核
webKit: u.indexOf('AppleWebKit') & -1, //苹果、谷歌内核
gecko: u.indexOf('Gecko') & -1 && u.indexOf('KHTML') == -1, //火狐内核
mobile: !!u.match(/AppleWebKit.*Mobile.*/)||!!u.match(/AppleWebKit/), //是否为移动终端
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
android: u.indexOf('Android') & -1 || u.indexOf('Linux') & -1, //android终端或者uc浏览器
iPhone: u.indexOf('iPhone') & -1 || u.indexOf('Mac') & -1, //是否为iPhone或者QQ HD浏览器
iPad: u.indexOf('iPad') & -1, //是否iPad
webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
language:(navigator.browserLanguage || navigator.language).toLowerCase()
document.writeln("语言版本: "+browser.language);
document.writeln(" 是否为移动终端: "+browser.versions.mobile);
document.writeln(" ios终端: "+browser.versions.ios);
document.writeln(" android终端: "+browser.versions.android);
document.writeln(" 是否为iPhone: "+browser.versions.iPhone);
document.writeln(" 是否iPad: "+browser.versions.iPad);
document.writeln(navigator.userAgent);
下面是通过检测关键字判断是不是手机在访问的PHP代码:
* 判断是否是通过手机访问
* @return bool 是否是移动设备
public function isMobile() {
//判断手机发送的客户端标志
if(isset($_SERVER['HTTP_USER_AGENT'])) {
$userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);
$clientkeywords = array(
'nokia', 'sony', 'ericsson', 'mot', 'samsung', 'htc', 'sgh', 'lg', 'sharp', 'sie-'
,'philips', 'panasonic', 'alcatel', 'lenovo', 'iphone', 'ipod', 'blackberry', 'meizu',
'android', 'netfront', 'symbian', 'ucweb', 'windowsce', 'palm', 'operamini',
'operamobi', 'opera mobi', 'openwave', 'nexusone', 'cldc', 'midp', 'wap', 'mobile'
// 从HTTP_USER_AGENT中查找手机浏览器的关键字
if(preg_match("/(".implode('|',$clientkeywords).")/i",$userAgent)&&strpos($userAgent,'ipad') === false)
下面的jsp代码简单判断浏览器类型,如果是iphone或者android就跳转到手机版本网页:
String ua = request.getHeader("User-Agent") ;
if (ua != null) {
if (ua.indexOf("iPhone") &-1 || ua.indexOf("iPad") &-1 || (ua.indexOf("ndroid") &-1 && ua.indexOf("WebKit") &-1)) {
response.sendRedirect("http://localhost/mobile");
下面是.NET代码(C#)在.NET下,其中一个方法是利用HttpBrowserCapabilities,代码如下:
System.Web.HttpBrowserCapabilities browser = Request.B
string s = "Browser Capabilities\n"
+ "Type = " + browser.Type + "\n"
+ "Name = " + browser.Browser + "\n"
+ "Version = " + browser.Version + "\n"
+ "Major Version = " + browser.MajorVersion + "\n"
+ "Minor Version = " + browser.MinorVersion + "\n"
+ "Platform = " + browser.Platform + "\n"
+ "Is Beta = " + browser.Beta + "\n"
+ "Is Crawler = " + browser.Crawler + "\n"
+ "Is AOL = " + browser.AOL + "\n"
+ "Is Win16 = " + browser.Win16 + "\n"
+ "Is Win32 = " + browser.Win32 + "\n"
+ "Supports Frames = " + browser.Frames + "\n"
+ "Supports Tables = " + browser.Tables + "\n"
+ "Supports Cookies = " + browser.Cookies + "\n"
+ "Supports VBScript = " + browser.VBScript + "\n"
+ "Supports JavaScript = " +
browser.EcmaScriptVersion.ToString() + "\n"
+ "Supports Java Applets = " + browser.JavaApplets + "\n"
+ "Supports ActiveX Controls = " + browser.ActiveXControls
+ "Supports JavaScript Version = " +
browser["JavaScriptVersion"] + "\n";
在web.config中需要在filter中进行匹配
&system.web& &browserCaps& &use var="HTTP_USER_AGENT" /&
&filter& &case match="Windows NT 6.1"& platform=Windows7 &/case& &/filter&
&/browserCaps& &/system.web&
另外一个方法:
///&summary&
/// 根据 Agent 判断是否是智能手机
///&/summary&
///&returns&&/returns&
public static bool CheckAgent()
bool flag =
string agent = HttpContext.Current.Request.UserA
string[] keywords = { "Android", "iPhone", "iPod", "iPad", "Windows Phone", "MQQBrowser" };
//排除 Windows 桌面系统
if (!agent.Contains("Windows NT") || (agent.Contains("Windows NT") && agent.Contains(" MSIE 9.0;")))
//排除 苹果桌面系统
if (!agent.Contains("Windows NT") && !agent.Contains("Macintosh"))
foreach (string item in keywords)
if (agent.Contains(item))
代码解释:1. !agent.Contains("Windows NT") && !agent.Contains("Macintosh") 排除Window 桌面系统 和 苹果桌面系统2. "Android", "iPhone", "iPod", "iPad", "Windows Phone", "MQQBrowser" 这些是判断智能设备Agent中的关键词3. MQQBrowser 为 QQ 手机浏览器,QQ 手机的Agent 比较特殊,所以单独判断
各移动浏览器的http user-agent:一、微信的http user-agent(关键词MicroMessenger)1. Iphone(苹果)平台微信的ucweb的useragent:Mozilla/5.0 (iP CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B176 MicroMessenger/4.3.22. Android(安卓)平台微信的ucweb的useragent:1Mozilla/5.0 (L U; Android 2.3.6; zh- GT-S5660 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MicroMessenger/4.5.255二、UC浏览器的http user-agent(关键词UCWEB)1. android平台: android平台ucweb急速模式开启下ucweb浏览器useragent: UCWEB/2.0 (L U; Adr 2.3; zh-CN; MI-ONEPlus) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobileandroid平台ucweb急速模式关闭状态下的http_user_agent:Mozilla/5.0 (L U; Android 2.3; zh-CN; MI-ONEPlus) AppleWebKit/534.13 (KHTML, like Gecko) UCBrowser/8.6.0.199 U3/0.8.0 Mobile Safari/534.13 2. iPhone 平台 iPhone 平台极速模式开启状态下ucweb浏览器useragent: UCWEB/2.0 (iOS; U; iPh OS 4_3_2; zh-CN; iPh4) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile iPhone 平台极速模式关闭状态下 UA 示例如下:(OBUA 为自带浏览器 UA)\OBUA UCBrowser/8.6.0.199 Mobile3. iPad 平台 ipad平台下ucweb浏览器useragent:Mozilla/5.0 (iP U; CPU OS 6_0 like Mac OS X; zh-CN; iPad2) AppleWebKit/534.13 (KHTML, like Gecko) UCBrowser/8.6.0.199 U3/0.8.0 Safari/534.13 4. windows Phone平台 WP平台下ucweb浏览器useragent: WP平台极速模式开启状态下:(以 Nokia 900 为例)UCWEB/2.0 (W U; wds7.10; zh-CN; Nokia 900) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile 5. 诺基亚平台 诺基亚手机Symbian&Java平台ucweb浏览器useragen:Nokia 5800 XpressMusic/UCWEB8.9.0.253/50/999 安卓QQ浏览器HD版检测的结果是:mac, Safari,这个很是变态,自己看着处理吧3个检测浏览器User-Agent信息的网站三、一些特别的浏览器QQ浏览器(android)MQQBrowser/3.6/Adr (L U; 4.0.3; zh- HUAWEI U8818 Build/UC17B926;480*800)魅族UC浏览器(android)JUC (L U; 2.3.5; zh- MEIZU MX; 640*960) UCWEB8.5.1.179/145/33232UC浏览器(iphone)IUC(U;iOS 5.1;Zh-320*480;)/UCWEB8.8.0.212/42/997Opera mobile(android)Opera/9.80 (Android 4.0.3; L Opera Mobi/ADR-) Presto/2.11.355 Version/12.10Opera mini(iphone)Opera/9.80 (iP Opera Mini/7.0.5/28.2690; U; zh) Presto/2.8.119 Version/11.10三个在线网站,通过手机浏览器就可以在线检测1. http://whatsmyuseragent.com/2. http://whatsmyua.com/3. http://www.useragentstring.com/
Unlrealpelad accuracy, unequivocal clarity, and undeniable importance!
博主方便留个QQ吗?有些问题想请教你,可以吗?
您还没有登录,请或自定义的函数如下:
$agent = check_wap();
if( $agent )
header('Location: http://www.nowamagic.net');
// check if wap
function check_wap(){
// 先检查是否为wap代理,准确度高
if(stristr($_SERVER['HTTP_VIA'],"wap")){
// 检查浏览器是否接受 WML.
elseif(strpos(strtoupper($_SERVER['HTTP_ACCEPT']),"VND.WAP.WML") & 0){
//检查USER_AGENT
elseif(preg_match('/(blackberry|configuration\/cldc|hp |hp-|htc |htc_|htc-|iemobile|kindle|midp|mmp|motorola|mobile|nokia|opera mini|opera |Googlebot-Mobile|YahooSeeker\/M1A1-R2D2|android|iphone|ipod|mobi|palm|palmos|pocket|portalmmm||smartphone|sonyericsson|sqh|spv|symbian|treo|up.browser|up.link|vodafone|windows ce|xda |xda_)/i', $_SERVER['HTTP_USER_AGENT'])){
再来一个从PHP框架剥离的判断是否为手机移动终端的函数:
function is_mobile_request(){
$_SERVER['ALL_HTTP'] = isset($_SERVER['ALL_HTTP']) ? $_SERVER['ALL_HTTP'] : '';
$mobile_browser = '0';
if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|iphone|ipad|ipod|android|xoom)/i', strtolower($_SERVER['HTTP_USER_AGENT'])))
$mobile_browser++;
if((isset($_SERVER['HTTP_ACCEPT'])) and (strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml') !== false))
$mobile_browser++;
if(isset($_SERVER['HTTP_X_WAP_PROFILE']))
$mobile_browser++;
if(isset($_SERVER['HTTP_PROFILE']))
$mobile_browser++;
$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
$mobile_agents = array(
'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',
'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
'newt','noki','oper','palm','pana','pant','phil','play','port','prox',
'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
'wapr','webc','winw','winw','xda','xda-'
if(in_array($mobile_ua, $mobile_agents))
$mobile_browser++;
if(strpos(strtolower($_SERVER['ALL_HTTP']), 'operamini') !== false)
$mobile_browser++;
// Pre-final check to reset everything if the user is on Windows
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows') !== false)
$mobile_browser=0;
// But WP7 is also Windows, with a slightly different characteristic
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows phone') !== false)
$mobile_browser++;
if($mobile_browser&0)
阅读(...) 评论()手机web页面如何触发打开微信 - ThinkPHP框架
我有一个手机web页面,点击某个按钮之后自动打开微信app,这个如何实现?
namelesswei
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。php中怎么样实现判断是手机访问还是电脑浏览器访问
按时间排序
严格的讲 strpos($_SERVER['HTTP_ACCEPT'],'wap')!==false 判断是不够的,网上找了段比较全的测试无误,贴出来mark下:
* 判断是手机访问pc访问
protected function check_wap() {
if (isset($_SERVER['HTTP_VIA'])) {
if (isset($_SERVER['HTTP_X_NOKIA_CONNECTION_MODE'])) {
if (isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID'])) {
if (strpos(strtoupper($_SERVER['HTTP_ACCEPT']), &VND.WAP.WML&) & 0) {
// Check whether the browser/gateway says it accepts WML.
$br = &WML&;
$browser = isset($_SERVER['HTTP_USER_AGENT']) ? trim($_SERVER['HTTP_USER_AGENT']) : '';
if (empty($browser)) {
$mobile_os_list = array('Google Wireless Transcoder', 'Windows CE', 'WindowsCE', 'Symbian', 'Android', 'armv6l', 'armv5', 'Mobile', 'CentOS', 'mowser', 'AvantGo', 'Opera Mobi', 'J2ME/MIDP', 'Smartphone', 'Go.Web', 'Palm', 'iPAQ');
$mobile_token_list = array('Profile/MIDP', 'Configuration/CLDC-', '160×160', '176×220', '240×240', '240×320', '320×240', 'UP.Browser', 'UP.Link', 'SymbianOS', 'PalmOS', 'PocketPC', 'SonyEricsson', 'Nokia', 'BlackBerry', 'Vodafone', 'BenQ', 'Novarra-Vision', 'Iris', 'NetFront', 'HTC_', 'Xda_', 'SAMSUNG-SGH', 'Wapaka', 'DoCoMo', 'iPhone', 'iPod');
$found_mobile = $this-&checkSubstrs($mobile_os_list, $browser) || $this-&checkSubstrs($mobile_token_list, $browser);
if ($found_mobile) {
$br = &WML&;
$br = &WWW&;
if ($br == &WML&) {
* 判断手机访问, pc访问
protected function checkSubstrs($list, $str) {
for ($i = 0; $i & count($list); $i++) {
if (strpos($str, $list[$i]) & 0) {
if ($this-&check_wap()) {
echo 'wap';
echo 'pc';
if(strpos($_SERVER['HTTP_ACCEPT'],'wap')){手机页面}else{电脑页面}
当然可以了!判断Request.UserAgent,手机和电脑是不一样的!
感谢您为社区的和谐贡献力量请选择举报类型
经过核实后将会做出处理感谢您为社区和谐做出贡献
确定要取消此次报名,退出该活动?
请输入私信内容:当前位置 :
> 正文PHP判断客户端是移动端PC端& & & &用Ckplayer做网站播放器的时候,相信许多用户遇到兼容性问题,在PC端只能用flash播放器,支持flv格式,移动端支持mp4格式,所以吖七用了PHP判断的办法,只有在PC端的时候调用CKplayer,移动端直接用H5播放器。在DedeCMS系统设置里面去掉j禁用PHP选项。
系统 -& 系统基本参数 -& 其他选项 -& 模板引擎禁用标签,删除php字段保存
& & & &在内容模板里面响应的位置加上如下代码
{dede:php}
if (isset ($_SERVER['HTTP_USER_AGENT'])) {
$clientkeywords = array ('nokia',
'sony','ericsson','mot','samsung','htc','sgh','lg','sharp','oppo','sie-','philips','panasonic','alcatel','lenovo','iphone','ipod','blackberry','meizu','android','netfront','symbian','ucweb','windowsce','palm','operamini','operamobi','openwave','nexusone','cldc','midp','wap','mobile');
// 从HTTP_USER_AGENT中查找手机浏览器的关键字
if (preg_match(&/(& . implode('|', $clientkeywords) . &)/i&, strtolower($_SERVER['HTTP_USER_AGENT']))){
移动端播放器代码
&video width=&100%& height=&400& controls&
&source src=&/视频.mp4& type=&video/mp4&&
echo &PC端播放器代码(省略)&;
echo &未知&;
{/dede:php}
与本文主题相关的文章:
本文地址:https://www.vi586.com/web/486.html版权声明:原创文章,版权归重庆SEO吖七所有,欢迎分享本文,转载请保留出处!别浪费时间复制粘贴,早就提交URL了。赞赞(55)上一篇: 下一篇: 栏目最新文章}

我要回帖

更多关于 php 判断用户是否在线 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信