php判断手机访问还是电脑访问示例分享


在PHP中,可以通过分析HTTP请求中的`User-Agent`字符串来判断客户端是手机访问还是电脑访问。虽然`User-Agent`可以被伪造,但大多数情况下这是一个可靠的方法。以下是一个简单的示例代码:


<?php

function isMobileDevice() {
    // 获取用户代理字符串
    $userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);

    // 定义一些常见的手机或平板用户代理中的关键字
    $mobileAgents = array(
        'iphone', 'ipod', 'ipad', 'android', 'blackberry', 'mini',
        'windows\s+ce', 'palm', 'mobile', 'mobilephone', 'opera mini',
        'iemobile', 'bb10', 'phone', 'nokia', 'samsung', 'htc',
        'sonyericsson', 'lg', 'motorola', 'mobile explorer',
        'mobile safari', 'silk/', 'dolfin', 'webos', 'fennec',
        'windows phone', 'iphone os', 'windows ce', 'blackberry9530',
        'lg-tu915', 'lg-tu910', 'lge vx', 'vx10000', 'symbian',
        'windows mobile', 'midp', 'wap', 'phone'
    );

    // 检查用户代理是否包含这些关键字中的任何一个
    foreach ($mobileAgents as $device) {
        if (strpos($userAgent, $device) !== false) {
            return true; // 是手机或平板访问
        }
    }

    return false; // 不是手机或平板访问
}

// 使用函数
if (isMobileDevice()) {
    echo "这是手机或平板访问";
} else {
    echo "这是电脑访问";
}

?>

请注意,随着移动设备和浏览器的不断更新,可能需要更新`$mobileAgents`数组中的关键字以保持检测的准确性。此外,对于一些特殊的设备或浏览器,可能需要更复杂的逻辑来准确判断。