如何识别设备类型: Phone, Tablet 和 Desktop

这里我们使用 User Agent 来判断,查看当前设备的 User Agent 可以访问如下链接:https://tanghengzhi.com/user-agent.php

echo $_SERVER['HTTP_USER_AGENT'];

1. 苹果设备很容易区分:iPhone,iPad,Macintosh。

2. 怎么区分 Android Phone 和 Android Tablet:有 Android 和 Mobile 的一定是 Android 手机,有 Android 和 Tablet 的一定是 Android 平板。但是需要注意的是:Android 手机一定有 Mobile,但是 Android 平板不一定有 Tablet。

3. 其他设备不知道怎么判断,于是我便大胆的假设:有 Phone 的一定是手机,有 Tablet 的一定是平板。

4. 假设前面三种情况涵盖了 90% 以上的手机和平板,那么剩下的都是 PC。于是有代码如下。


$userAgent = $_SERVER['HTTP_USER_AGENT'];
// Detect Apple Devices
if (preg_match('/iPhone/i', $userAgent)) {
    return 'Phone';
}
if (preg_match('/iPad/i', $userAgent)) {
    return 'Tablet';
}
// Detect Android Devices
if (preg_match('/Android/i', $userAgent) && preg_match('/Mobile/i', $userAgent)) {
    return 'Phone';
}
if (preg_match('/Android/i', $userAgent) && !preg_match('/Mobile/i', $userAgent)) {
    return 'Tablet';
}
// Detect Other Devices
if (preg_match('/Phone/i', $userAgent)) {
    return 'Phone';
}
if (preg_match('/Tablet/i', $userAgent)) {
    return 'Tablet';
}

return 'Desktop';


参考:

https://stackoverflow.com/questions/5341637/how-do-detect-android-tablets-in-general-useragent

 525 total views,  1 views today