php检测用户是否用手机(Mobile)访问网站的类



<?php

class MobileDetect
{
    private $userAgent;

    public function __construct()
    {
        $this->userAgent = $_SERVER['HTTP_USER_AGENT'];
    }

    /**
     * 检测用户是否用手机访问
     * @return bool
     */
    public function isMobile()
    {
        $mobileAgents = [
            // 常见的手机浏览器 User-Agent 关键字
            'iPhone', 'iPod', 'iPad',
            'Android', 'BlackBerry', 'IEMobile',
            'Opera Mini', 'Windows Phone',
            'Mobile', 'Opera Mobi', 'Mobile Safari'
        ];

        foreach ($mobileAgents as $agent) {
            if (strpos($this->userAgent, $agent) !== false) {
                return true;
            }
        }

        return false;
    }
}

// 使用示例
$mobileDetect = new MobileDetect();
if ($mobileDetect->isMobile()) {
    echo "用户正在使用手机访问";
} else {
    echo "用户可能不是使用手机访问";
}
?>

这个`MobileDetect`类通过检查HTTP请求中的`User-Agent`字符串来判断用户是否通过移动设备访问网站。它定义了一个`isMobile`方法,该方法通过搜索`User-Agent`字符串中是否包含一系列已知的移动设备标识来做出判断。如果`User-Agent`中包含这些标识之一,则返回`true`,表示用户正在使用移动设备访问;否则返回`false`。请注意,由于`User-Agent`字符串可以被修改或伪造,因此这种方法并不是100%准确的。