php获得访问来源(手机wap访问、电脑web访问)
为了更好的用户体验,本主题默认支持wap和web两种访问样式,wap访问将不包含任何脚本、样式也是重新撰写,不支持更多页面,只支持首页、详情页, 评论框、登录等内容将陆续更新到wap内容里。如果想测试,您可以使用手机访问http://qianduanblog.com试试看,是不是效果和电脑 访问不一样?
下面贴出获得访问类型的函数(来源于互联网):
经测试,下面判断是错误的。
- /***************************************************
- ** 返回访问的类型(wap web)
- ** 2012年12月2日22:21:20
- ***************************************************/
- function yundanran_get_access_type()
- {
- $is_wap=false;
- // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
- if (isset($_SERVER['HTTP_X_WAP_PROFILE']))
- {
- $is_wap=true;
- }
- else
- {
- // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
- if(isset($_SERVER['HTTP_VIA']))
- {
- // 找不到为flase,否则为true
- $is_wap=stristr($_SERVER['HTTP_VIA'],"wap") ? true : false;
- }
- else
- {
- // 协议法,因为有可能不准确,放到最后判断
- if (isset($_SERVER['HTTP_ACCEPT']))
- {
- // 如果只支持wml并且不支持html那一定是移动设备
- // 如果支持wml和html但是wml在html之前则是移动设备
- if
- (
- (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false)
- && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false
- ¦¦ (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html')))
- )
- {
- $is_wap=true;
- }
- }
- }
- }
- return $is_wap?'wap':'web';
- }
- 正确的判断方法,将会近期写出:
╮(╯▽╰)╭,笨方法,用UA判断,源自大前端:
- /***************************************************
- ** 返回访问的类型(wap web)
- ** 2012年12月2日22:21:20
- ** 2012年12月3日22:30:00
- ***************************************************/
- function yundanran_get_access_type()
- {
- $is_wap=false;
- $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_wap = false;
- foreach ($mobile_agents as $device)
- {
- if (stristr($user_agent, $device))
- {
- $is_wap = true;
- break;
- }
- }
- return $is_wap?'wap':'web';
- }
- 转载自 http://qianduanblog.com/post/php-get-access-source.html
php获得访问来源(手机wap访问、电脑web访问)的更多相关文章
- 安装apache服务器时遇到只能本地访问,局域网内其他电脑不能访问apache:
安装apache服务器时遇到只能本地访问,局域网内其他电脑不能访问apache:1.查看selinux运行状态及关闭selinux/usr/sbin/sestatus -v文本模式关闭selinux: ...
- php如何判断电脑访问还是手机访问?
手机上网用户数量越来越大,如今各网站都推出了手机网站,电脑用户访问时直接访问电脑版网页,当用户通过手机访问网站时则跳自动跳转到手机版网页,下面给大家分享一段php中判断电脑访问还是手机访问的代码: & ...
- 部署 Windows PowerShell Web 访问
部署 Windows PowerShell Web 访问 适用对象:Windows Server 2012, Windows Server 2012 R2 Windows PowerShell® We ...
- 解决电脑访问Discuz!手机版(支持触屏版)
discuz电脑访问手机版的方法现在需要来修改一下2个文件,即可用电脑浏览discuz的手机版本:找到./source/function/function_core.php 文件,查找 : funct ...
- 使用UAParser在C#MVC项目中如何判断用户是在用什么设备进行访问(手机,平板还是普通的电脑)
现在我们开发的很多web应用都要支持手机等移动设备.为了让手机用户能有更加好的用户体验,我们经常为手机设备专门准备一套前端的页面.这样当用户使用普通电脑来访问的时候,我们的应用就向用户展示普通电脑的页 ...
- php怎么判断网页是电脑访问还是手机访问
.第一种方法 <?php function check_wap() { ) { ;$i<count($list);$i++){ ){ ...
- PHP判断设备访问来源
/** * 判断用户请求设备是否是移动设备 * @return bool */ function isMobile() { //如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (is ...
- WampServer 2.5设置外网访问/局域网手机访问(403 Forbidden错误解决方法)
安装好wamp后,想用手机通过局域访问电脑上wamp下的网页,结果出现如下提示. (403 Forbidden)错误 1.打开http.conf文件 2.找到下图中红色方框中的onlineofflin ...
- Linux(CentOS)系统下安装好apache(httpd)服务后,其他电脑无法访问的原因
原文:Linux(CentOS)系统下安装好apache(httpd)服务后,其他电脑无法访问的原因 今天试了下在虚拟机上利用CentOS系统的yum命令安装好了httpd(apache2.4.6), ...
随机推荐
- seajs的spm使用
压缩JS文件 只需要执行这个命令即可 spm build xxx.js 这时候你将得到一个压缩过的__build/xxx.js文件 合并JS文件 如果希望将JS文件中require的其他模块都合并到这 ...
- Dining
poj3281:http://poj.org/problem?id=3281 题意:有n个人,然后有F份食物,D份饮料,然后每一个会有一些喜爱的饮料和食物,问你最多可以使得多少人同时得到一份自己喜爱的 ...
- Android 使用HttpClient方式提交POST请求
final String username = usernameEditText.getText().toString().trim(); final String password = passwr ...
- http://www.cnblogs.com/xwdreamer/archive/2012/02/21/2360818.html
http://www.cnblogs.com/xwdreamer/archive/2012/02/21/2360818.html
- Delphi_OD_代码_调试_Delphi反调试技术(以OD为例附核心原代码)
1.程序窗口[chuang kou]句柄[ju bing]检测原理:用FindWindow函数[han shu]查找[cha zhao]具有相同窗口[chuang kou]类名和标题的窗口[chuan ...
- lc面试准备:Candy
1 题目 There are N children standing in a line. Each child is assigned a rating value. You are giving ...
- Tachyon Cluster: 基于Zookeeper的Master High Availability(HA)高可用配置实现
1.Tachyon简介 Tachyon是一个高容错的分布式文件系统,允许文件以内存的速度在集群框架中进行可靠的共享,就像Spark和 MapReduce那样.通过利用信息继承,内存侵入,Tachyon ...
- EntityFramework 异常 -- An entity object cannot be referenced by multiple instances of IEntityChangeTracker
问题 在调用 DbSet 的 Attach() 方法时(与将 Entity 设置为 EntityState.Unchanged 状态等价)报告以下错误: An entity ob ...
- vector,list,deque容器的迭代器简单介绍
我们知道标准库中的容器有vector,list和deque.另外还有slist,只不过它不是标准容器.而谈到容器,我们不得不知道进行容器一切操作的利器---迭代器.而在了解迭代器之前,我们得先知道每个 ...
- 使用Redis作为消息队列服务场景应用案例
一.消息队列场景简介 "消息"是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更复杂,可能包含嵌入对象.消息被发送到队列中,"消息队列&qu ...