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用数组返回无限分类的列表数据的代码
Aug 08 PHP
php中函数的形参与实参的问题说明
Sep 01 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
Jul 03 PHP
php导出word格式数据的代码实例
Nov 25 PHP
php遍历目录输出目录及其下的所有文件示例
Jan 27 PHP
MyEclipse常用配置图文教程
Sep 11 PHP
PHP实现采集抓取淘宝网单个商品信息
Jan 08 PHP
PHP网站建设的流程与步骤分享
Sep 25 PHP
PHP错误Warning:mysql_query()解决方法
Oct 24 PHP
php获取服务器操作系统相关信息的方法
Oct 08 PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
Nov 22 PHP
php设计模式之工厂模式用法经典实例分析
Sep 20 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
CI框架Session.php源码分析
2014/11/03 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
2014/11/25 PHP
PHP实现的DES加密解密类定义与用法示例
2020/11/02 PHP
JQuery实现简单时尚快捷的气泡提示插件
2012/12/20 Javascript
javascript抖动元素的小例子
2013/10/28 Javascript
改变状态栏文字的js代码
2014/06/13 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
node.js学习之交互式解释器REPL详解
2016/12/08 Javascript
微信小程序中多个页面传参通信的学习与实践
2017/05/05 Javascript
JS实现百度搜索接口及链接功能实例代码
2018/02/02 Javascript
webpack项目调试以及独立打包配置文件的方法
2018/02/28 Javascript
Node.js 使用AngularJS的方法示例
2018/05/11 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
2019/06/24 Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
2019/07/26 Javascript
使用layui 的layedit定义自己的toolbar方法
2019/09/18 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
2020/06/01 Javascript
JavaScript读取本地文件常用方法流程解析
2020/10/12 Javascript
[58:15]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 NB vs Liquid
2018/04/02 DOTA
Python读大数据txt
2016/03/28 Python
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
python3实现小球转动抽奖小游戏
2020/04/15 Python
Python实现的爬取百度贴吧图片功能完整示例
2019/05/10 Python
python 实现提取log文件中的关键句子,并进行统计分析
2019/12/24 Python
Tensorflow中k.gradients()和tf.stop_gradient()用法说明
2020/06/10 Python
Win10环境中如何实现python2和python3并存
2020/07/20 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
Numpy中的数组搜索中np.where方法详细介绍
2021/01/08 Python
Linden Leaves官网:新西兰纯净护肤品
2020/12/20 全球购物
教师岗位职责
2013/11/17 职场文书
2013年军训通讯稿
2014/02/05 职场文书
幼儿教师研修感言
2014/02/12 职场文书
2014植树节活动总结
2014/03/11 职场文书
励志演讲稿500字
2014/08/21 职场文书
党的群众路线个人对照检查材料
2014/09/23 职场文书
Nebula Graph解决风控业务实践
2022/03/31 MySQL