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 相关文章推荐
给多个地址发邮件的类
Oct 09 PHP
php下使用curl模拟用户登陆的代码
Sep 10 PHP
PHP中strtotime函数使用方法详解
Nov 27 PHP
zend framework文件上传功能实例代码
Dec 25 PHP
PHP has encountered a Stack overflow问题解决方法
Nov 03 PHP
Laravel的throttle中间件失效问题解决方法
Oct 09 PHP
php批量转换文件夹下所有文件编码的函数类
Aug 06 PHP
php-msf源码详解
Dec 25 PHP
Laravel源码解析之路由的使用和示例详解
Sep 27 PHP
PHP实现的抓取小说网站内容功能示例
Jun 27 PHP
tp5.1 框架查询表达式用法详解
May 25 PHP
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
Apr 01 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 截取字符串并以零补齐str_pad() 函数
2011/05/07 PHP
浅析Apache中RewriteCond规则参数的详细介绍
2013/06/30 PHP
Zend studio文件注释模板设置方法
2013/09/29 PHP
php中json_encode UTF-8中文乱码的更好解决方法
2014/09/28 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
2017/02/17 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
2018/12/08 PHP
Nginx+php配置文件及原理解析
2020/12/09 PHP
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
原生js做的手风琴效果的导航菜单
2013/11/08 Javascript
js 阻止子元素响应父元素的onmouseout事件具体实现
2013/12/23 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
javascript实现给定半径求出圆的面积
2015/06/26 Javascript
分享两款带遮罩的jQuery弹出框
2015/12/30 Javascript
强大Vue.js组件浅析
2016/09/12 Javascript
Nodejs读取文件时相对路径的正确写法(使用fs模块)
2017/04/27 NodeJs
Javascript实现数组中的元素上下移动
2017/04/28 Javascript
详解JavaScript中return的用法
2017/05/08 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
2017/09/28 Javascript
PHP读取远程txt文档到数组并实现遍历
2020/08/25 Javascript
在Django的视图中使用form对象的方法
2015/07/18 Python
Python 基础知识之字符串处理
2017/01/06 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
Python的CGIHTTPServer交互实现详解
2018/02/08 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
Python爬虫爬取煎蛋网图片代码实例
2019/12/16 Python
python中实现词云图的示例
2020/12/19 Python
深入浅析CSS3中的Flex布局整理
2020/04/27 HTML / CSS
大学生求职中的自我评价
2013/10/01 职场文书
销售主管的自我评价分享
2014/01/03 职场文书
开展党的群众路线教育实践活动方案
2014/02/05 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
2019邀请函格式及范文
2019/05/20 职场文书
Requests什么的通通爬不了的Python超强反爬虫方案!
2021/05/20 Python
Ajax实现三级联动效果
2021/10/05 Javascript