检查客户端是否为移动设备

<?php
/**
 * 检查客户端是否为移动设备
 *
 * @return bool 检查结果
 */
function is_mobile(): bool
{
    $mobile = false;

    $ua = strtolower($_SERVER['HTTP_USER_AGENT']); // 获取客户端设备UA

    // 移动设备标识(或品牌)汇总
    $device = [
        //========== 触屏设备标识(或品牌) ==========//
        'iphone', 'android', 'phone', 'mobile', 'wap', 'netfront', 'java', 'opera mobi', 'opera mini',
        'ucweb', 'windows ce', 'symbian', 'series', 'webos', 'sony', 'blackberry', 'dopod', 'nokia', 'samsung',
        'palmsource', 'xda', 'pieplus', 'meizu', 'midp', 'cldc', 'motorola', 'foma', 'docomo', 'up.browser',
        'up.link', 'blazer', 'helio', 'hosin', 'huawei', 'novarra', 'coolpad', 'webos', 'techfaith', 'palmsource',
        'alcatel', 'amoi', 'ktouch', 'nexian', 'ericsson', 'philips', 'sagem', 'wellcom', 'bunjalloo', 'maui',
        'smartphone', 'iemobile', 'spice', 'bird', 'zte-', 'longcos', 'pantech', 'gionee', 'portalmmm', 'jig browser',
        'hiptop', 'benq', 'haier', '^lct', '320x320', '240x320', '176x220', 'windows phone',

        //========== WML设备标识(或品牌) ==========//
        'cect', 'compal', 'ctl', 'lg', 'nec', 'tcl', 'alcatel', 'ericsson', 'bird', 'daxian', 'dbtel', 'eastcom',
        'pantech', 'dopod', 'philips', 'haier', 'konka', 'kejian', 'lenovo', 'benq', 'mot', 'soutec', 'nokia', 'sagem',
        'sgh', 'sed', 'capitel', 'panasonic', 'sonyericsson', 'sharp', 'amoi', 'panda', 'zte',

        //========== 平板设备标识(或品牌) ==========//
        'ipad',
    ];

    foreach ($device as $dev) {
        if (str_contains($ua, $dev)) {
            $mobile = true;
            break;
        }
    }

    return $mobile;
}


if (is_mobile()) {
    echo '当前客户端是移动设备';
} else {
    echo '当前客户端非移动设备';
}

Copyright © 2024 码农人生. All Rights Reserved