php或js判断网站访问者来自手机或者pc端源码

news/2024/5/9 18:59:08/文章来源:https://blog.csdn.net/dianchamian8747/article/details/101876601

 

很多时候也可以通过逻辑程序来进行判断,如PHP、JS是常用的两种识别访问设备类型的常用方法。

原理都是采用识别访问客户端的HTTP_USER_AGENT,然后进行关键字匹配进行确定设备类型,对于伪造HTTP头的就区分不出来了。

区分设备类型然后要做的就是能够针对不同设置显示出易于阅读的网页,具体可以研究响应式布局技术。

响应式布局

本文主要介绍如何通过php或js来识别终端类型。

<?php
class IsMobile {public static function isMobile(){$useragent=isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';$useragent_commentsblock=preg_match('|\(.*?\)|',$useragent,$matches)>0?$matches[0]:'';$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 = self::CheckSubstrs($mobile_os_list, $useragent_commentsblock) ||self::CheckSubstrs($mobile_token_list,$useragent);if ($found_mobile){return true;}else{return false;}}public static function CheckSubstrs($substrs,$text){foreach($substrs as $substr)if(false!==strpos($text,$substr)){return true;}return false;}
}/*test code
if (IsMobile::isMobile())echo '手机登录www.nginx.cn';
elseecho '电脑登录www.nginx.cn';
*/
?>

 

function isPhone() {// 如果有HTTP_X_WAP_PROFILE则一定是移动设备if (isset($_SERVER['HTTP_X_WAP_PROFILE'])) {return true;}//如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息if (isset($_SERVER['HTTP_VIA'])) {//找不到为flase,否则为trueif(stristr($_SERVER['HTTP_VIA'], "wap")){return true;}}//脑残法,判断手机发送的客户端标志,兼容性有待提高if (isset($_SERVER['HTTP_USER_AGENT'])) {$clientkeywords = array ('nokia','sony','ericsson','mot','samsung','htc','sgh','lg','sharp','sie-','philips','panasonic','alcatel','lenovo','iphone','ipod','blackberry','meizu','android','netfront','symbian','ucweb','windowsce','palm','operamini','operamobi','openwave','nexusone','cldc','midp','wap','mobile','phone',);// 从HTTP_USER_AGENT中查找手机浏览器的关键字if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {return true;}}//协议法,因为有可能不准确,放到最后判断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')))) {return true;}}return false;
}
js区分手机或PC访问源码方法一<!--切换手机版网站--->
<script src="http://siteapp.baidu.com/static/webappservice/uaredirect.js" type="text/javascript"></script>
<script type="text/javascript">uaredirect("http://www.nginx.cn/");</script>
方法二<script type="text/javascript"><!-- //平台、设备和操作系统var system ={win : false,mac : false,xll : false};//检测平台var p = navigator.platform;system.win = p.indexOf("Win") == 0;system.mac = p.indexOf("Mac") == 0;system.x11 = (p == "X11") || (p.indexOf("Linux") == 0);//跳转语句,如果是手机访问就自动跳转到wap.baidu.com页面if(system.win||system.mac||system.xll){window.location.href="http://www.kdw.cc";}else{window.location.href="http://m.kdw.cc";}-->
</script>

 

转载于:https://www.cnblogs.com/hgj123/p/4646330.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_854359.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL注入全过程,含实例初步注入--绕过验证,直接登录安全较低公司网站登陆框如下:可以看到除了账号密码之外

SQL注入全过程,含实例 初步注入--绕过验证&#xff0c;直接登录 公司网站登陆框如下&#xff1a; 可以看到除了账号密码之外&#xff0c;还有一个公司名的输入框&#xff0c;根据输入框的形式不难推出SQL的写法如下&#xff1a;   SELECT * From Table WHERE NameXX and Pass…

使用libsvm对政府网站访问数据的分析和预测

创新性 选取题材&#xff0c;政府网站访问数据。想通过使用人工智能的方法&#xff0c;根据已有数据建立模型&#xff0c;对新的访问数据进行鉴别&#xff0c;区分网站访问是否为正常访问&#xff0c;从而进行一些业务处理。更进一步&#xff0c;预测哪些是危险访问&#xff0…

看透 Spring MVC 源代码分析与实践——网站基础知识

每天都会分享Java架构文章&#xff0c;喜欢的朋友关注我。ps&#xff1a;文末有彩蛋&#xff0c;惊喜等着你 网站架构及其演变过程 基础结构 网络传输分解方式&#xff1a; 标准的 OSI 参考模型TCP/IP 参考模型海量数据的解决方案 缓存和页面静态化缓存通过程序直接保存在内…

用户在电商网站中购买成功了,那么在微服务中经历了什么?

当我傻啊&#xff0c;用户在电商网站购买成功&#xff0c;还在微服务中&#xff0c;那肯定就是有一套微服务架构的电商系统。 设计一套电商系统还不简单 简单想象一下&#xff0c;既然是一个电商系统&#xff0c;有用户去购买&#xff0c;就肯定得有一个用户模块&#xff0c;…

JAVA爬取网站查询网络IP所在地

JAVA爬取网站查询网络IP所在地 网络中我们上网都是一个ip地址&#xff0c;在获取对象网络ip的时候&#xff0c;如果想查询他所在网络的地址怎么搞呢&#xff1f;上代码 1.写一个方法通过站长工具网站查询到你输入的ip的地址&#xff0c;需要用URL去爬取网站数据 /**ip就是需要…

建站技术是一锤子买卖,而建站服务则是长久性的共赢吗?

近年来&#xff0c;服务外包需要越来越多&#xff0c;业务也越来越多样化&#xff0c;特别是IT服务外包。随着资本市场的进入&#xff0c;人力成本的提升&#xff0c;素质教育与实际工作环境的脱钩&#xff0c;可谓是一将难求&#xff0c;所以很多公司或单位开始将目光关注到第…

手机微信小程序公众号交友平台网站定制开发,相亲网站系统建设,婚恋相亲网站制作

10几年的技术团队&#xff0c;专业定制交友网站开发&#xff0c;交友平台网站建设&#xff0c;婚恋网站平‌‌‌‌台开发建设&#xff0c;可仿百合网&#xff0c;世纪佳缘网&#xff0c;支持电脑版手机版微信版小程序版APP版&#xff0c;由10年的技术团队专业定制&#xff0c;需…

网站站内、站外链接优化技巧与作用

其实网站站内链接优化和站外链接优化一样重要&#xff0c;两者是相辅相成的&#xff0c;可能在对不同的搜索引擎的时候有些不一样&#xff0c;在相同条件下百度更加注重的是内容&#xff0c;谷歌更加注重的是链接&#xff0c;所以这两个都要同时做好才能让网站对搜索引擎更加友…

国际版云购网站代码开发实现案例

最近把之前的中文版元购夺宝网站做了改变&#xff0c;感觉还是比较不错的&#xff0c;算是高大上国际版云购网站代码开发实现案例&#xff0c;现在分享给大家看看。 预览效果图&#xff1a; function is_php($version 5.0.0){static $_is_php;$version (string)$version;if …

Google有三个.cn网站可以访问了,但它们只面向开发者

12 月 8 日&#xff0c;Google 在北京举办了一场规模空前的开发者活动&#xff0c;推出了三个不需科学上网就能访问的子站点。 developers.google.cn firebase.google.cn developer.android.google.cn 虽然 Google 早在 2010 年就正式退出了中国市场&#xff0c;但它在开发者…

Nginx之坑:完全理解location中的index,配置网站初始页

文章目录index指令的作用index指令详解基本内容&#xff08;中文文档和官方文档都可见&#xff09;&#xff1a;核心内容&#xff08;中文文档没有或一笔带过&#xff0c;而官方文档作详细解释&#xff09;&#xff1a;实例Nginx中文文档Nginx官方文档吐槽index指令的作用 在前…

2019fresco依赖_在2019年建立一个无依赖网站

我的新改进个人网站的屏幕截图 经过几年的基本无视后&#xff0c;我最近决定是时候刷新我的个人站点了 。 先前的迭代结合了Gulp和Bower&#xff0c;并结合了Susy&#xff08;网格系统的Sass库&#xff09;&#xff08;版本2&#xff0c;而不是最新的版本3&#xff09;。 我上一…

2007最牛X网站收集

50. 经典桌面 这个名叫东子的偏执狂不知花了多少工夫&#xff0c;mydeskcity.com的内容量达到了40G&#xff0c;很多图片都是站长本人在国外搜集后&#xff0c;自己进行加工的作品。 http://www.mydeskcity.com/ 49. 画猪头 在指定的对话框里面随便画一个猪头&#…

纯css实现网站导航条下拉效果

不用javascript效果实现导航条的下拉效果。 纯css属性实现&#xff0c;主要应用到绝对定位中的left&#xff1a;auto和 left&#xff1a;-9999px&#xff1b;来隐藏或者鼠标经过的时候显示下拉菜单。 下面是代码&#xff1a; <!DOCTYPE html> <html> <head&g…

网站右侧导航条的玩法

最近心情很不好&#xff0c;各种工作生活上面的事情&#xff0c;让我很是受伤&#xff0c;刚出来工作感觉程序员确实是个神奇的行业&#xff0c;一个个都觉得自己的智商挺高的&#xff0c;哎&#xff0c;每天起早贪黑的上下班&#xff0c;还天天受气&#xff0c;真是日了够了&a…

谷歌浏览器调试网站技巧教程

1.样式的调试&#xff0c;盒子模型。 2找到hover样式 3 4.样式所对应的标签&#xff0c;所在文件名

mouseover事件,鼠标移上去数据出不来且数据错乱

我要做如下的效果&#xff0c;就是鼠标移上去有一个信息提示框 但是我用mouseover一直就是鼠标移上去第一下&#xff0c;直接位置那里是空的&#xff0c;然后再次移动之后&#xff0c;数据一直都是错乱的&#xff0c;比如&#xff0c;从第一个人移动到第二个人那里&#xff0c;…

MySQL在大型网站的应用架构演变

可扩展性 架构的可扩展性往往和并发是息息相关&#xff0c;没有并发的增长&#xff0c;也就没有必要做高可扩展性的架构&#xff0c;这里对可扩展性进行简单介绍一下&#xff0c; 常用的扩展手段有以下两种&#xff1a; Scale-up : 纵向扩展&#xff0c;通过替换为更好的机器…

互联网网站架构升级----消息中间件的实现方案

消息中间件对目前大中型互联网来说是非常重要的&#xff0c;在业务数据流动中仅次于RPC服务调用&#xff0c;担负着越来越复杂的网站业务从主流程上解耦的重要责任&#xff1b; 伦理片 http://www.gxuy.com/ 从目前互联网对消息中间件的需求来看应该分为两种类型&#xff0…

20 步打造完美网站布局设计

英文原文&#xff1a;Pro tips: 20 steps to the perfect website layout&#xff0c;编译&#xff1a;蝶月猋欢yeeyan Claudio Guglieri 在纽约广告公司 B-Reel 任职总监&#xff0c;他撰写了本网站设计培训指南&#xff0c;旨在帮助您了解设计网站布局的全过程。 开始讲述设计…