欢迎访问宙启技术站
智能推送

获取浏览器信息的PHP函数

发布时间:2023-07-02 20:11:02

获取浏览器信息的PHP函数可以使用$_SERVER超全局变量来获取。$_SERVER['HTTP_USER_AGENT']是浏览器发送到服务器的HTTP报头字段之一,包含了关于浏览器和操作系统的信息。以下是一个示例函数可以用来获取浏览器信息:

function getBrowserInfo() {
  $userAgent = $_SERVER['HTTP_USER_AGENT'];

  // 初始化为空
  $browserInfo = '';

  // 判断是否为IE浏览器
  if (preg_match('/MSIE/i', $userAgent)) {
    $browser = 'Internet Explorer';
    $browserInfo .= 'Browser: ' . $browser . '<br>';

    // 使用正则表达式匹配IE版本
    if (preg_match('/MSIE (\d+\.\d+)/i', $userAgent, $matches)) {
      $version = $matches[1];
      $browserInfo .= 'Version: ' . $version . '<br>';
    }
  }
  // 判断是否为Firefox浏览器
  elseif (preg_match('/Firefox/i', $userAgent)) {
    $browser = 'Mozilla Firefox';
    $browserInfo .= 'Browser: ' . $browser . '<br>';

    if (preg_match('/Firefox\/(\d+\.\d+)/i', $userAgent, $matches)) {
      $version = $matches[1];
      $browserInfo .= 'Version: ' . $version . '<br>';
    }
  }
  // 判断是否为Safari浏览器
  elseif (preg_match('/Safari/i', $userAgent)) {
    $browser = 'Apple Safari';
    $browserInfo .= 'Browser: ' . $browser . '<br>';

    if (preg_match('/Version\/(\d+\.\d+)/i', $userAgent, $matches)) {
      $version = $matches[1];
      $browserInfo .= 'Version: ' . $version . '<br>';
    }
  }
  // 判断是否为Chrome浏览器
  elseif (preg_match('/Chrome/i', $userAgent)) {
    $browser = 'Google Chrome';
    $browserInfo .= 'Browser: ' . $browser . '<br>';

    if (preg_match('/Chrome\/(\d+\.\d+)/i', $userAgent, $matches)) {
      $version = $matches[1];
      $browserInfo .= 'Version: ' . $version . '<br>';
    }
  }
  // 判断是否为Opera浏览器
  elseif (preg_match('/Opera/i', $userAgent)) {
    $browser = 'Opera';
    $browserInfo .= 'Browser: ' . $browser . '<br>';

    if (preg_match('/Version\/(\d+\.\d+)/i', $userAgent, $matches)) {
      $version = $matches[1];
      $browserInfo .= 'Version: ' . $version . '<br>';
    }
  }
  // 如果无法识别浏览器,则显示未知
  else {
    $browser = 'Unknown Browser';
    $browserInfo .= $browser . '<br>';
  }

  // 获取操作系统信息
  $osInfo = '';
  if (preg_match('/Windows NT 10.0/i', $userAgent)) {
    $os = 'Windows 10';
    $osInfo .= 'Operating System: ' . $os . '<br>';
  } elseif (preg_match('/Windows NT 6.3/i', $userAgent)) {
    $os = 'Windows 8.1';
    $osInfo .= 'Operating System: ' . $os . '<br>';
  } elseif (preg_match('/Windows NT 6.2/i', $userAgent)) {
    $os = 'Windows 8';
    $osInfo .= 'Operating System: ' . $os . '<br>';
  } elseif (preg_match('/Windows NT 6.1/i', $userAgent)) {
    $os = 'Windows 7';
    $osInfo .= 'Operating System: ' . $os . '<br>';
  } elseif (preg_match('/Windows NT 6.0/i', $userAgent)) {
    $os = 'Windows Vista';
    $osInfo .= 'Operating System: ' . $os . '<br>';
  } elseif (preg_match('/Windows NT 5.2/i', $userAgent)) {
    $os = 'Windows Server 2003/XP x64';
    $osInfo .= 'Operating System: ' . $os . '<br>';
  } elseif (preg_match('/Windows NT 5.1/i', $userAgent)) {
    $os = 'Windows XP';
    $osInfo .= 'Operating System: ' . $os . '<br>';
  } elseif (preg_match('/Windows NT 5.0/i', $userAgent)) {
    $os = 'Windows 2000';
    $osInfo .= 'Operating System: ' . $os . '<br>';
  } elseif (preg_match('/Mac/i', $userAgent)) {
    $os = 'Macintosh';
    $osInfo .= 'Operating System: ' . $os . '<br>';
  } elseif (preg_match('/Linux/i', $userAgent)) {
    $os = 'Linux';
    $osInfo .= 'Operating System: ' . $os . '<br>';
  } else {
    $os = 'Unknown Operating System';
    $osInfo .= $os . '<br>';
  }

  // 拼接浏览器信息和操作系统信息
  $browserInfo .= $osInfo;

  return $browserInfo;
}

// 调用函数,获取浏览器信息
$browserInfo = getBrowserInfo();

// 输出浏览器信息
echo $browserInfo;

这个函数通过检查HTTP_USER_AGENT的值,使用正则表达式来识别浏览器和操作系统。根据匹配结果,可以获取浏览器名称和版本,以及操作系统名称。输出的浏览器信息包含浏览器名称、版本和操作系统名称。