php判断终端是手机还是电脑访问网站的思路及代码


Posted in PHP onApril 24, 2013

代码一:

<?php 
function check_wap() { 
if (isset($_SERVER['HTTP_VIA'])) return true; 
if (isset($_SERVER['HTTP_X_NOKIA_CONNECTION_MODE'])) return true; 
if (isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID'])) return true; 
if (strpos(strtoupper($_SERVER['HTTP_ACCEPT']),"VND.WAP.WML") > 0) { 
// Check whether the browser/gateway says it accepts WML. 
$br = "WML"; 
} else { 
$browser = isset($_SERVER['HTTP_USER_AGENT']) ? trim($_SERVER['HTTP_USER_AGENT']) : ''; 
if(empty($browser)) return true; 
$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=checkSubstrs($mobile_os_list,$browser) || 
checkSubstrs($mobile_token_list,$browser); 
if($found_mobile) 
$br ="WML"; 
else $br = "WWW"; 
} 
if($br == "WML") { 
return true; 
} else { 
return false; 
} 
} 
function checkSubstrs($list,$str){ 
$flag = false; 
for($i=0;$i<count($list);$i++){ 
if(strpos($str,$list[$i]) > 0){ 
$flag = true; 
break; 
} 
} 
return $flag; 
} 
if(check_wap()){ 
echo "wap"; 
}else{ 
echo "web"; 
} 
?>

代码二:

<?php 
header("Content-type:text/html;charset=utf-8"); 
function is_mobile(){ 
$user_agent = $_SERVER['HTTP_USER_AGENT']; 
$mobile_agents = Array("240x320","acer","acoon","acs-","abacho","ahong","airness","alcatel","amoi","android","anywhereyougo.com","applewebkit/525","applewebkit/532","asus","audio","au-mic","avantogo","becker","benq","bilbo","bird","blackberry","blazer","bleu","cdm-","compal","coolpad","danger","dbtel","dopod","elaine","eric","etouch","fly ","fly_","fly-","go.web","goodaccess","gradiente","grundig","haier","hedy","hitachi","htc","huawei","hutchison","inno","ipad","ipaq","ipod","jbrowser","kddi","kgt","kwc","lenovo","lg ","lg2","lg3","lg4","lg5","lg7","lg8","lg9","lg-","lge-","lge9","longcos","maemo","mercator","meridian","micromax","midp","mini","mitsu","mmm","mmp","mobi","mot-","moto","nec-","netfront","newgen","nexian","nf-browser","nintendo","nitro","nokia","nook","novarra","obigo","palm","panasonic","pantech","philips","phone","pg-","playstation","pocket","pt-","qc-","qtek","rover","sagem","sama","samu","sanyo","samsung","sch-","scooter","sec-","sendo","sgh-","sharp","siemens","sie-","softbank","sony","spice","sprint","spv","symbian","tablet","talkabout","tcl-","teleca","telit","tianyu","tim-","toshiba","tsm","up.browser","utec","utstar","verykool","virgin","vk-","voda","voxtel","vx","wap","wellco","wig browser","wii","windows ce","wireless","xda","xde","zte"); 
$is_mobile = false; 
foreach ($mobile_agents as $device) { 
if (stristr($user_agent, $device)) { 
$is_mobile = true; 
break; 
} 
} 
return $is_mobile; 
} 
if(is_mobile()){ 
echo "手机"; 
}else{ 
echo "电脑"; 
}
PHP 相关文章推荐
php横向重复区域显示二法
Sep 25 PHP
PHP三层结构(上) 简单三层结构
Jul 04 PHP
PHP 小心urldecode引发的SQL注入漏洞
Oct 27 PHP
基于curl数据采集之正则处理函数get_matches的使用
Apr 28 PHP
php绘制圆形的方法
Jan 24 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
Yii学习总结之安装配置
Feb 22 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
Jul 21 PHP
详解PHP归并排序的实现
Oct 18 PHP
Laravel学习教程之model validation的使用示例
Oct 23 PHP
PHP配置ZendOpcache插件加速
Feb 14 PHP
PHP生成短网址的思路以及实现方法的详解
Mar 25 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
Apr 23 #PHP
基于PHP读取TXT文件向数据库导入海量数据的方法
Apr 23 #PHP
『PHP』PHP截断函数mb_substr()使用介绍
Apr 22 #PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
Apr 22 #PHP
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
Apr 22 #PHP
基于PHP Web开发MVC框架的Smarty使用说明
Apr 19 #PHP
PHP时间戳与日期之间转换的实例介绍
Apr 19 #PHP
You might like
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
2011/11/07 PHP
PHP explode()函数用法、切分字符串
2012/10/03 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
PHP中call_user_func_array回调函数的用法示例
2016/11/26 PHP
在线游戏大家来找茬II
2006/09/30 Javascript
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
Javascript 获取LI里的内容
2008/12/17 Javascript
JS 图片缩放效果代码
2010/06/09 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
JS生成和下载二维码的代码
2016/12/07 Javascript
vue实现动态添加数据滚动条自动滚动到底部的示例代码
2018/07/06 Javascript
react脚手架如何配置less和ant按需加载的方法步骤
2018/11/28 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
[38:21]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS Newbee
2018/03/31 DOTA
python中的装饰器详解
2015/04/13 Python
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
Python json解析库jsonpath原理及使用示例
2020/11/25 Python
使用phonegap进行本地存储的实现方法
2017/03/31 HTML / CSS
新加坡网上美容店:Hermo新加坡
2019/06/19 全球购物
物流管理专业毕业生求职信
2014/03/23 职场文书
寄语是什么意思
2014/04/10 职场文书
综治宣传月活动总结
2014/04/28 职场文书
二人合伙经营协议书
2014/09/13 职场文书
2014年督导工作总结
2014/11/19 职场文书
2014年房地产个人工作总结
2014/12/20 职场文书
课外活动总结
2015/02/04 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
新员工入职感想
2015/08/07 职场文书
Nginx中break与last的区别详析
2021/03/31 Servers
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis
python获取字符串中的email
2022/03/31 Python
nginx location 带斜杠【 / 】与不带的区别
2022/04/13 Servers