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中检查PHP文件是否有语法错误的方法
Dec 23 PHP
php array_unique之后json_encode需要注意
Jan 02 PHP
php统计文件大小,以GB、MB、KB、B输出
May 29 PHP
PHP内核介绍及扩展开发指南―基础知识
Sep 11 PHP
PHP生成压缩文件实例
Feb 07 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
Jun 24 PHP
PHP中把对象数组转换成普通数组的方法
Jul 10 PHP
详谈PHP编码转换问题
Jul 28 PHP
PHP数学运算函数大汇总(经典值得收藏)
Apr 01 PHP
PHP封装的数据库保存session功能类
Jul 11 PHP
php版阿里云OSS图片上传类详解
Dec 01 PHP
PHP设计模式之单例模式定义与用法分析
Mar 26 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
基于mysql的论坛(3)
2006/10/09 PHP
ThinkPHP php 框架学习笔记
2009/10/30 PHP
解析zend studio中直接导入svn中的项目的方法步骤
2013/06/21 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
PHP将数据导出Excel表中的实例(投机型)
2017/07/31 PHP
JS鼠标事件大全 推荐收藏
2011/11/01 Javascript
javascript在myeclipse中报错的解决方法
2013/10/29 Javascript
JS创建类和对象的两种不同方式
2014/08/08 Javascript
JSON+Jquery省市区三级联动
2016/01/13 Javascript
全面了解javascript中的错误处理机制
2016/07/18 Javascript
详细谈谈AngularJS的子级作用域问题
2016/09/05 Javascript
js判断出两个字符串最大子串的函数实现方法
2016/11/01 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
2016/12/28 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
微信小程序movable view移动图片和双指缩放实例代码
2017/08/08 Javascript
详解tween.js 中文使用指南
2018/01/05 Javascript
总结js函数相关知识点
2018/02/27 Javascript
Python实现网站文件的全备份和差异备份
2014/11/30 Python
Python实现的使用telnet登陆聊天室实例
2015/06/17 Python
Python和JavaScript间代码转换的4个工具
2016/02/22 Python
Python实现的爬取网易动态评论操作示例
2018/06/06 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
2020/12/09 Python
python中@property的作用和getter setter的解释
2020/12/22 Python
印度最大的旅游网站:MakeMyTrip
2016/10/05 全球购物
美国演唱会订票网站:Ticketmaster美国
2017/10/05 全球购物
Electric官网:美国高级眼镜和配件品牌
2020/06/04 全球购物
外贸采购员求职的自我评价
2013/11/26 职场文书
优秀共产党员先进事迹
2014/01/27 职场文书
年度考核自我鉴定
2014/02/02 职场文书
毕业生欢送会主持词
2014/03/31 职场文书
2014大学辅导员工作总结
2014/12/02 职场文书
股份转让协议书范本
2015/01/27 职场文书
综合素质评价思想道德自我评价
2015/03/09 职场文书
寒假致家长的一封信
2015/10/10 职场文书
高中体育课教学反思
2016/02/16 职场文书
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android