判断用户是否使用移动设备使用PHP浏览我的网站的最简单方法是什么?

我遇到过许多类,你可以使用,但我希望一个简单的if条件!

有什么办法可以让我这么做吗?


当前回答

我编写这个脚本是为了用PHP检测移动浏览器。

该代码根据用户代理字符串通过preg_match()ing单词检测用户,这些单词在数百次测试后只在移动设备的用户代理字符串中找到。它在当前所有移动设备上都有100%的准确性,我目前正在更新它,以支持更多的移动设备。代码名为isMobile,如下所示:

function isMobile() {
    return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
}

你可以这样使用它:

// Use the function
if(isMobile()){
    // Do something for only mobile users
}
else {
    // Do something for only desktop users
}

要将用户重定向到您的移动站点,我会这样做:

// Create the function, so you can use it
function isMobile() {
    return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
}
// If the user is on a mobile device, redirect them
if(isMobile()){
    header("Location: http://m.yoursite.com/");
}

其他回答

没有可靠的方法。您也许可以查看user-agent字符串,但这可能会被欺骗或省略。或者,您也可以使用GeoIP服务来查找客户机的IP地址,但同样,这可以很容易地避免。

我编写这个脚本是为了用PHP检测移动浏览器。

该代码根据用户代理字符串通过preg_match()ing单词检测用户,这些单词在数百次测试后只在移动设备的用户代理字符串中找到。它在当前所有移动设备上都有100%的准确性,我目前正在更新它,以支持更多的移动设备。代码名为isMobile,如下所示:

function isMobile() {
    return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
}

你可以这样使用它:

// Use the function
if(isMobile()){
    // Do something for only mobile users
}
else {
    // Do something for only desktop users
}

要将用户重定向到您的移动站点,我会这样做:

// Create the function, so you can use it
function isMobile() {
    return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
}
// If the user is on a mobile device, redirect them
if(isMobile()){
    header("Location: http://m.yoursite.com/");
}

这个简单的解决方案

if(
    
    strpos($_SERVER['HTTP_USER_AGENT'],'Phone')
    |
    strpos($_SERVER['HTTP_USER_AGENT'],'Android')
    
    
){      echo "should be mobile";                }
else{   echo "give them the desktop version";   }

适用于我测试的大多数设备(通过浏览器开发工具设备模拟)。

当然,你可以简单地使用echo($_SERVER['HTTP_USER_AGENT'])查看自己使用的值。

在我的情况下,唯一丢失的智能手机设备是黑莓z30,我通过检查“触摸”来修复它。对于诺基亚N9,我也检查了“诺基亚”。显然,如果发现“未检查”,可以将这些添加到更多设备上。但现在,这可能比上面一些更复杂的字符串扫描模式更好/更快地理解。

您只需要包含user_agent.php文件,该文件可以在PHP页面中的移动设备检测中找到,并使用以下代码。

<?php
//include file
include_once 'user_agent.php';

//create an instance of UserAgent class
$ua = new UserAgent();

//if site is accessed from mobile, then redirect to the mobile site.
if($ua->is_mobile()){
   header("Location:http://m.codexworld.com");
   exit;
}
?>

一个更简单的解决方案似乎在大多数情况下都有效:

function funcDeviceType() {

 // INFO ABOUT THE BROWSER/DEVICE USER IS VISITING ON
 $useragent = $_SERVER["HTTP_USER_AGENT"]; 

 if(stripos($useragent, "mobile")!== false){
      return "mobile device";
  }else{
      return "desktop or laptop computer";
  }
}