首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 偵測裝置類型:iPhone、iPad、Android、PC 判斷最佳實踐

     編輯:PHP 綜合知識

核心原理

解析 $_SERVER['HTTP_USER_AGENT'] 字串,關鍵字匹配:

  • Windows NT → PC(含 Windows Phone 舊版,現已極少)
  • iPhone → iPhone
  • iPad → iPad
  • Android → Android

基礎判斷函數

<?php
function detectDevice(): array
{
    $ua = strtolower($_SERVER['HTTP_USER_AGENT'] ?? '');
    return [
        'is_pc'      => strpos($ua, 'windows nt') !== false,
        'is_iphone'  => strpos($ua, 'iphone') !== false,
        'is_ipad'    => strpos($ua, 'ipad') !== false,
        'is_android' => strpos($ua, 'android') !== false,
    ];
}

// 使用範例
$device = detectDevice();
if ($device['is_pc'])      echo 'PC';
if ($device['is_iphone'])  echo 'iPhone';
if ($device['is_ipad'])    echo 'iPad';
if ($device['is_android']) echo 'Android';
?>

簡化版:僅區分 iOS / Android / Other

<?php
function getDeviceType(): string
{
    $ua = strtolower($_SERVER['HTTP_USER_AGENT'] ?? '');
    if (strpos($ua, 'iphone') !== false || strpos($ua, 'ipad') !== false) return 'ios';
    if (strpos($ua, 'android') !== false) return 'android';
    return 'other';
}
?>

進階考量

  1. User-Agent 可偽造:僅作為前端體驗優化(如載入不同 CSS/JS),不可用於安全驗證。
  2. 平板判斷:Android 平板 UA 同樣含 android,若需區分手機/平板,需進一步檢查 mobile 關鍵字或螢幕尺寸(需 JS 協助)。
  3. 機器人/爬蟲:建議先檢查 bot、crawler、spider 等關鍵字,歸類為 bot。
  4. 效能:UA 字串較短,strpos 極快,可直接在每請求執行,無需快取。

現代替代方案

  • Client Hints (CH):Chrome 89+ 支援 Sec-CH-UA-Mobile、Sec-CH-UA-Platform 等標準標頭,比 UA 更結構化、隱私友善。
  • WURFL / DeviceAtlas:企業級裝置特徵資料庫,支援數萬種裝置精準識別。
  • Mobile-Detect PHP Library:composer require mobiledetect/mobiledetectlib,提供豐富 isMobile()、isTablet()、isiOS() 等方法。

總結

簡單專案用 strpos 關鍵字匹配即可滿足 90% 需求;追求準確度、可維護性,請引入成熟函式庫或採用 Client Hints。記住:UA 僅供體驗優化,不可信任。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved