PHP-如何判断用户使用何种终端设备访问网站

PHP-如何判断用户使用何种终端设备访问网站

甜柠檬 发布于 2017-02-27 字数 203 浏览 1300 回复 5

如何准确的判断用户使用何种设备 访问网站 ,网站使用php编写的,在网上搜了一个插件http://detectmobilebrowsers.com/ 但是我用UC 和android手机自带的浏览器浏览时都没有正确显示。顺便说一下原理,谢谢!!!

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

夜无邪 2017-07-22 5 楼

要准确的判断是何种设备比较困难,需要维护一个设备属性的表,而且设备也会不断更新的。
如果只是想知道是否使用移动设备访问,可以参考下这个问题:
用PHP如何识别一个移动设备?
如果只是想知道用的什么浏览器,可以参考下我之前提问有人给出的答案:

function detectBrowser(ns) {
var ua = ns.ua = navigator.userAgent;
ns.isWebKit = (/webkit/i).test(ua);
ns.isMozilla = (/mozilla/i).test(ua);
ns.isIE = (/msie/i).test(ua);
ns.isFirefox = (/firefox/i).test(ua);
ns.isChrome = (/chrome/i).test(ua);
ns.isSafari = (/safari/i).test(ua) && !this.isChrome;
ns.isMobile = (/mobile/i).test(ua);
ns.isOpera = (/opera/i).test(ua);
ns.isIOS = (/ios/i).test(ua);
ns.isIpad = (/ipad/i).test(ua);
ns.isIpod = (/ipod/i).test(ua);
ns.isIphone = (/iphone/i).test(ua) && !this.isIpod;
ns.isAndroid = (/android/i).test(ua);
ns.supportStorage = "localStorage" in window;
ns.supportOrientation = "orientation" in window;
ns.supportDeviceMotion = "ondevicemotion" in window;
ns.supportTouch = "ontouchstart" in window;
ns.supportTransform3d = ('WebKitCSSMatrix' in window);
ns.cssPrefix = ns.isWebKit ? "webkit" : ns.isFirefox ? "Moz" : ns.isOpera ? "O" : ns.isIE ? "ms" : "";
};
甜柠檬 2017-04-25 4 楼

HTTP协议内有User-Agent这一项,可以根据这一项的不同来判断终端是什么,不过这个可以修改,像firefox就可以直接修改。我当初让视频支持ipad上播放,根据useragent来判断设备时,就是修改的firefox的useragent。

甜柠檬 2017-04-22 3 楼

 <?php
$uAgent = $_SERVER['HTTP_USER_AGENT'];
$osPat = "mozilla|m3gate|winwap|openwave|Windows NT|Windows 3.1|95|Blackcomb|98|ME|XWindow|ubuntu|Longhorn|AIX|Linux|AmigaOS|BEOS|HP-UX|OpenBSD|FreeBSD|NetBSD|OS/2|OSF1|SUN";
if(preg_match("/($osPat)/i", $uAgent ))
{
echo "来着PC访问";
}
else
{
echo "其他终端访问";
}

?>

想挽留 2017-04-02 2 楼

WURFL, http://wurfl.sourceforge.net/

新的device 可能要付费了。 两年前用的还行, 也可以自己维护,添加新的device.

浮生未歇 2017-03-13 1 楼

就是通过User-Agent来获取终端设备的,具体的可以通过JS/PHP/ASP都可以,不过UA伪造起来实在太容易,像火狐或谷歌浏览器就可以用user agent switcher插件来随意更改UA,但这也是没法解决的事情:(

PHP:

<?php
echo $_SERVER['HTTP_USER_AGENT']
?>

ASP:

<%
dim ua
ua=Request.ServerVariables("HTTP_USER_AGENT")
response.write ua
%>

JS:

 <SCRIPT>
function whatBrowser() {
document.Browser.Name.value=navigator.appName;
document.Browser.Version.value=navigator.appVersion;
document.Browser.Code.value=navigator.appCodeName;
document.Browser.Agent.value=navigator.userAgent;
}
</SCRIPT>