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数组函数序列之array_unique() - 去除数组中重复的元素值
Oct 29 PHP
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
Apr 08 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
Jun 12 PHP
ThinkPHP实现事务回滚示例代码
Jun 23 PHP
ThinkPHP安装和设置
Jul 27 PHP
php 实现301重定向跳转实例代码
Jul 18 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
Feb 04 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
Nov 12 PHP
PHP运用foreach神奇的转换数组(实例讲解)
Feb 01 PHP
PHP中in_array的隐式转换的解决方法
Mar 06 PHP
PHP实现生成数据字典功能示例
May 24 PHP
Laravel框架控制器,视图及模型操作图文详解
Dec 04 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
德生PL990,目前市面上唯一一款便携式插卡蓝牙全波段高性能收音机
2021/03/02 无线电
PHP 处理图片的类实现代码
2009/10/23 PHP
php实现使用正则将文本中的网址转换成链接标签
2014/12/03 PHP
详解PHP中的状态模式编程
2015/08/11 PHP
Centos PHP 扩展Xchche的安装教程
2016/07/09 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
超越Jquery_01_isPlainObject分析与重构
2010/10/20 Javascript
javascript学习笔记(十五) js间歇调用和超时调用
2012/06/20 Javascript
jquery插件制作 手风琴Panel效果实现
2012/08/17 Javascript
关于include标签导致js路径找不到的问题分析及解决
2013/07/09 Javascript
jQuery实现模拟marquee标签效果
2015/07/14 Javascript
20分钟轻松创建自己的Bootstrap站点
2016/05/12 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
2016/09/09 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
2016/12/28 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
2017/02/22 Javascript
JQuery.dataTables表格插件添加跳转到指定页
2017/06/09 jQuery
分析JavaScript数组操作难点
2017/12/18 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
浅谈vue项目4rs vue-router上线后history模式遇到的坑
2018/09/27 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
详解nuxt 微信公众号支付遇到的问题与解决
2019/08/26 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
利用Python的Django框架中的ORM建立查询API
2015/04/20 Python
浅析Python多线程下的变量问题
2015/04/28 Python
浅谈python内置变量-reversed(seq)
2017/06/21 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
2019/03/11 Python
python,Django实现的淘宝客登录功能示例
2019/06/12 Python
学Python 3的理由和必要性
2019/11/19 Python
交通法规咨询中心工作职责
2013/11/27 职场文书
服务理念口号
2014/06/11 职场文书
4s店销售经理岗位职责
2014/07/19 职场文书
避暑山庄导游词
2015/02/04 职场文书
七一表彰大会简报
2015/07/20 职场文书
浅谈Python中的函数(def)及参数传递操作
2021/05/25 Python