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制作简单的内容采集器的原理分析
Oct 01 PHP
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
Jun 04 PHP
浅析application/x-www-form-urlencoded和multipart/form-data的区别
Jun 22 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
Sep 04 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
Nov 18 PHP
php session 写入数据库
Feb 13 PHP
PHP使用fopen与file_get_contents读取文件实例分享
Mar 04 PHP
PHP基于自增数据如何生成不重复的随机数示例
May 19 PHP
Redis在Laravel项目中的应用实例详解
Aug 11 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
May 16 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
Sep 30 PHP
php 利用socket发送GET,POST请求的实例代码
Jul 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
正确的PHP匹配UTF-8中文的正则表达式
2015/05/13 PHP
php实现简单的权限管理的示例代码
2017/08/25 PHP
Laravel 实现在Blade模版中使用全局变量代替路径的例子
2019/10/22 PHP
EditPlus中的正则表达式 实战(4)
2016/12/15 Javascript
jquery-file-upload 文件上传带进度条效果
2017/11/21 jQuery
浅谈React深度编程之受控组件与非受控组件
2017/12/26 Javascript
Nginx 配置多站点vhost 的方法
2018/01/07 Javascript
微信小程序项目实践之验证码倒计时功能
2018/07/18 Javascript
小程序云开发初探(小结)
2018/10/24 Javascript
详解微信小程序图片地扯转base64解决方案
2019/08/18 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
2019/11/24 Javascript
JS this关键字在ajax中使用出现问题解决方案
2020/07/17 Javascript
关于element的表单组件整理笔记
2021/02/05 Javascript
Python的标准模块包json详解
2017/03/13 Python
Linux RedHat下安装Python2.7开发环境
2017/05/20 Python
使用python实现ANN
2017/12/20 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
对python创建及引用动态变量名的示例讲解
2018/11/10 Python
python获取url的返回信息方法
2018/12/17 Python
Python中捕获键盘的方式详解
2019/03/28 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
java字符串格式化输出实例讲解
2021/01/06 Python
实例讲解CSS3中的box-flex弹性盒属性布局
2016/06/09 HTML / CSS
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
Java程序开发中如何应用线程
2016/03/03 面试题
国外的一些J2EE面试题一
2012/10/13 面试题
热能动力工程毕业生自荐信
2013/11/07 职场文书
教师党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
鼋头渚导游词
2015/02/05 职场文书
中学综治宣传月活动总结
2015/05/07 职场文书
举起手来观后感
2015/06/09 职场文书
活动宣传稿范文
2015/07/23 职场文书
高中历史教学反思
2016/02/19 职场文书
nginx优化的六点方法
2021/03/31 Servers