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 相关文章推荐
怎样在UNIX系统下安装MySQL
Oct 09 PHP
隐藏你的.php文件的实现方法
Mar 19 PHP
php读取msn上的用户信息类
Dec 05 PHP
用php获取本周,上周,本月,上月,本季度日期的代码
Aug 05 PHP
php file_get_contents函数轻松采集html数据
Apr 22 PHP
php smarty 二级分类代码和模版循环例子
Jun 16 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
Oct 06 PHP
PHP数组传递是值传递而非引用传递概念纠正
Jan 31 PHP
Symfony模板的快捷变量用法实例
Mar 17 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
Jul 19 PHP
PHP获取当前系统时间的方法小结
Oct 03 PHP
tp5修改(实现即点即改)
Oct 18 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截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
CI框架Session.php源码分析
2014/11/03 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
详解PHP如何更好的利用PHPstorm的自动提示
2017/08/18 PHP
JavaScript中“+=”的应用
2007/02/02 Javascript
js prototype 格式化数字 By shawl.qiu
2007/04/02 Javascript
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
如何用js控制frame的隐藏或显示的解决办法
2013/03/20 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
jQuery解析Json实例详解
2015/11/24 Javascript
用JavaScript和jQuery实现瀑布流
2017/03/19 Javascript
微信小程序选择图片和放大预览图片功能
2017/11/02 Javascript
JS实现简单的星期格式转换功能示例
2018/07/23 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
jquery插件懒加载的示例
2020/10/24 jQuery
JavaScript 实现轮播图特效的示例
2020/11/05 Javascript
在matplotlib的图中设置中文标签的方法
2018/12/13 Python
对Python之gzip文件读写的方法详解
2019/02/08 Python
使用keras实现densenet和Xception的模型融合
2020/05/23 Python
在python中list作函数形参,防止被实参修改的实现方法
2020/06/05 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
基于注解实现 SpringBoot 接口防刷的方法
2021/03/02 Python
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
Juice Beauty官网:有机美容产品,护肤与化妆品
2020/06/13 全球购物
自动化专业毕业生求职信
2014/06/18 职场文书
欢度春节标语
2014/07/01 职场文书
感恩教师节演讲稿
2014/09/03 职场文书
国庆横幅标语
2014/10/08 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python
Python操作CSV格式文件的方法大全
2021/07/15 Python
MySQL非空约束(not null)案例讲解
2021/08/23 MySQL