有一个典型的移动用户代理regexp模式吗?

有一个典型的移动用户代理regexp模式吗?,regex,mobile,user-agent,Regex,Mobile,User Agent,在设计用于检测移动用户代理的regexp模式中有无数的例子,甚至在本文的答案中也有不少。您知道其中一个可能是使用和支持最广泛的(在Git存储库中更新的)?往往会有一个独自去是危险的!拿这个来说。最终是所有东西的版本(例如,等),所以可能也有这个版本。提供了这个解决方案(针对JS): 嗯,是的,很复杂 如果你想使用另一种语言,请直接访问该网站。免责声明:我知道这个正则表达式不是完美的/精髓的,所以不要仅仅为此而投票:) 我只是想分享这几点 某些服务器未设置$\u SERVER['HTTP\u US

在设计用于检测移动用户代理的regexp模式中有无数的例子,甚至在本文的答案中也有不少。您知道其中一个可能是使用和支持最广泛的(在Git存储库中更新的)?往往会有一个
独自去是危险的!拿这个来说。
最终是所有东西的版本(例如,等),所以可能也有这个版本。

提供了这个解决方案(针对JS):

嗯,是的,很复杂


如果你想使用另一种语言,请直接访问该网站。

免责声明:我知道这个正则表达式不是完美的/精髓的,所以不要仅仅为此而投票:)

我只是想分享这几点

  • 某些服务器未设置$\u SERVER['HTTP\u USER\u AGENT'],因此请确保先检查是否为空
  • 可读性对我们来说很重要,所以我们使用这个而不是其他复杂的正则表达式。只需添加您认为合适的其他设备即可
  • 以下是我们使用的代码:

    <?php
    if(! empty($_SERVER['HTTP_USER_AGENT'])){
        $useragent = $_SERVER['HTTP_USER_AGENT'];
        if( preg_match('@(iPad|iPod|iPhone|Android|BlackBerry|SymbianOS|SCH-M\d+|Opera Mini|Windows CE|Nokia|SonyEricsson|webOS|PalmOS)@', $useragent) ){
            header('Location: ./mobile/');
        }
    }
    ?>
    
    
    
    您提到的这个难以捉摸的存储库在哪里?哈,多么不幸的打字错误(好奇的后代:请参阅修订历史)!哇,谢谢!基于这个regexp的复杂性,我想说它比我们目前使用的(基本上只是一个|分隔的名称列表)要深思熟虑一些。可能不想使用它们,因为当我尝试detectmobilebrowsers.com的PHP时,它没有检测到ipad是移动的。。。这是我的用户代理,Mozilla/5.0(iPad;CPU OS 5_0,如Mac OS X)AppleWebKit/534.46(KHTML,如Gecko)Version/5.1 Mobile/9A334 Safari/7534.48.3See-Pad和平板电脑未经设计检测。注意:此推荐网站自2014年以来未更新,因此这可能不再是最基本的答案。
    <?php
    if(! empty($_SERVER['HTTP_USER_AGENT'])){
        $useragent = $_SERVER['HTTP_USER_AGENT'];
        if( preg_match('@(iPad|iPod|iPhone|Android|BlackBerry|SymbianOS|SCH-M\d+|Opera Mini|Windows CE|Nokia|SonyEricsson|webOS|PalmOS)@', $useragent) ){
            header('Location: ./mobile/');
        }
    }
    ?>