要判断一个请求是否来自移动端,可以通过判断用户的 User-Agent 来实现。在 PHP 中,可以使用 $_SERVER['HTTP_USER_AGENT'] 获取 User-Agent 字段的值。以下是一个简单的示例代码:
<?php
function isMobileDevice()
{
$userAgent = $_SERVER['HTTP_USER_AGENT'];
// 判断常见的手机浏览器标识符
$mobileUserAgents = [
'Mobile', 'Android', 'Silk/', 'Kindle', 'BlackBerry', 'Opera Mini',
'Opera Mobi', 'SymbianOS', 'Nokia', 'Windows Phone', 'webOS', 'IEMobile',
'UP.Browser', 'UCWEB', 'Skyfire', 'JUC', 'BOLT', 'Fennec', 'Dorothy',
'BrowserNG', 'Blazer', 'Puffin', 'Mercury', 'Obigo', 'NetFront', 'iCab',
'TeaShark', 'Bunjalloo', 'Gnuzilla', 'MiuiBrowser'
];
foreach ($mobileUserAgents as $mobileUserAgent) {
if (strpos($userAgent, $mobileUserAgent) !== false) {
return true;
}
}
return false;
}
// 使用示例
if (isMobileDevice()) {
echo "这是一个移动端请求";
} else {
echo "这是一个非移动端请求";
}
?>
以上代码会检查请求的 User-Agent 是否包含常见的手机浏览器标识符,如果包含则判断为移动端请求,否则判断为非移动端请求。需要注意的是,该方法只能做一个简单的判断,无法保证100%准确性。因为用户可以通过修改 User-Agent 字段来伪装设备类型。