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 相关文章推荐
打造计数器DIY三步曲(上)
Oct 09 PHP
dedecms 制作模板中使用的全局标记图文教程
Mar 11 PHP
用php实现百度网盘图片直链的代码分享
Nov 01 PHP
thinkPHP实现表单自动验证
Dec 24 PHP
php从数据库查询结果生成树形列表的方法
Apr 17 PHP
PHP6连接SQLServer2005的三部曲
Apr 15 PHP
PHP获取input输入框中的值去数据库比较显示出来
Nov 16 PHP
Discuz论坛密码与密保加密规则
Dec 19 PHP
php实现留言板功能(会话控制)
May 23 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
May 23 PHP
PHP连接sftp并下载文件的方法教程
Aug 26 PHP
laravel框架中表单请求类型和CSRF防护实例分析
Nov 23 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编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
2015/12/17 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
2016/07/15 PHP
javaScript对象和属性的创建方法
2007/01/15 Javascript
JQuery上传插件Uploadify使用详解及错误处理
2010/04/27 Javascript
jquery实现鼠标拖动图片效果示例代码
2014/01/09 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
jquery通过ajax加载一段文本内容的方法
2015/01/15 Javascript
JavaScript数组随机排列实现随机洗牌功能
2015/03/19 Javascript
全面了解addEventListener和on的区别
2016/07/14 Javascript
Highcharts入门之简介
2016/08/02 Javascript
JavaScript中访问id对象 属性的方式访问属性(实例代码)
2016/10/28 Javascript
Jquery实现跨域异步上传文件总结
2017/02/03 Javascript
js 作用域和变量详解
2017/02/16 Javascript
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
js实现从左向右滑动式轮播图效果
2017/07/07 Javascript
详解wow.js中各种特效对应的类名
2017/09/13 Javascript
node+express+ejs使用模版引擎做的一个示例demo
2017/09/18 Javascript
webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)
2018/01/09 Javascript
layer实现弹出层自动调节位置
2019/09/05 Javascript
[01:22:29]真视界:2019年国际邀请赛总决赛
2020/01/29 DOTA
python抓取某汽车网数据解析html存入excel示例
2013/12/04 Python
Python的Flask框架中实现简单的登录功能的教程
2015/04/20 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
Python pygame绘制文字制作滚动文字过程解析
2019/12/12 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
2020/05/29 Python
内部类的定义、种类以及优点
2013/10/16 面试题
教师年终个人自我评价
2013/10/04 职场文书
项目经理岗位职责
2013/11/11 职场文书
感恩母亲节活动方案
2014/03/04 职场文书
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server
JavaScript中10个Reduce常用场景技巧
2022/06/21 Javascript
Go 内联优化让程序员爱不释手
2022/06/21 Golang