当前位置: 首页 > news >正文

PHP怎样判断浏览器类型和浏览器语言?

获取浏览器类型

$_SERVER['HTTP_USER_AGENT']包含了用户代理字符串,该字符串包含了浏览器、操作系统等信息。通过分析这个字符串,可以大致判断用户使用的浏览器类型。

<?phpfunction getBrowserType() {$userAgent = $_SERVER['HTTP_USER_AGENT'];$browser = "Unknown Browser";if (preg_match('/MSIE/i', $userAgent) || preg_match('/Trident/i', $userAgent)) {$browser = "Internet Explorer";} elseif (preg_match('/Edge/i', $userAgent)) {$browser = "Microsoft Edge";} elseif (preg_match('/Firefox/i', $userAgent)) {$browser = "Mozilla Firefox";} elseif (preg_match('/Chrome/i', $userAgent) && preg_match('/Safari/i', $userAgent) == false) {$browser = "Google Chrome";} elseif (preg_match('/Safari/i', $userAgent)) {$browser = "Apple Safari";} elseif (preg_match('/Opera/i', $userAgent) || preg_match('/OPR/i', $userAgent)) {$browser = "Opera";}return $browser;
}echo "Browser Type: " . getBrowserType();?>

获取浏览器语言

$_SERVER['HTTP_ACCEPT_LANGUAGE']包含了用户首选的语言列表,通常以逗号分隔,并带有质量值(可选)。可以通过解析这个字符串来获取用户的首选语言。

<?phpfunction getBrowserLanguage() {$acceptLanguage = $_SERVER['HTTP_ACCEPT_LANGUAGE'];$languages = explode(',', $acceptLanguage);$primaryLanguage = 'Unknown Language';if (isset($languages[0])) {// 提取语言代码(通常是前两个字符)$primaryLanguageCode = substr($languages[0], 0, 2);// 映射语言代码到可读语言名称(可选)$languageMap = ['en' => 'English','zh' => 'Chinese','fr' => 'French','de' => 'German','es' => 'Spanish',// 可以根据需要添加更多语言映射];$primaryLanguage = isset($languageMap[$primaryLanguageCode]) ? $languageMap[$primaryLanguageCode] : $primaryLanguageCode;}return $primaryLanguage;
}echo "Browser Language: " . getBrowserLanguage();?>

我的个人PHP项目:

PHP全文检索引擎 WindSearch: https://github.com/rock365/windsearch

请帮我点个star~谢谢你!

http://www.dtcms.com/a/142533.html

相关文章:

  • CF1016赛后总结
  • 2025年Q1数据安全政策、规范、标准以及报告汇总共92份(附下载)
  • KWDB 创作者计划 KWDB(KaiwuDB)系列专题 (四) KWDB核心概念解析:多模、时序与分布式
  • 关于UE5的抗锯齿和TAA
  • DSA数据结构与算法 4
  • 洛谷P1177【模板】排序:十种排序算法全解(1)
  • 【java实现+4种变体完整例子】排序算法中【基数排序】的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格
  • Jsp技术入门指南【七】JSP动作讲解
  • Tracepoints for the VFS?
  • 通过docker create与export来分析诊断故障镜像
  • 8 编程笔记全攻略:Markdown 语法精讲、Typora 编辑器全指南(含安装激活、基础配置、快捷键详解、使用技巧)
  • day46——两数之和-输入有序数组(LeetCode-167)
  • PHP怎样连接MySQL数据库?
  • python函数之间嵌套使用yield
  • sqli-labs之Less-7 GET注入写shell
  • CPU与GPU之间的交互
  • 【C++】新手入门指南(上)
  • Linux-进度条小程序
  • webpack 中 chunks详解
  • 论文降重GPT指令-实侧有效从98%降低到8%
  • SQL注入相关知识
  • 【解决】torch引入过程中的ImportError: __nvJitLinkAddData_12_1, version libnvJitLink.so.12
  • 阿里云Clickhouse 冷热数据分层存储 实战记录
  • 递归下降 ll(1) 型文法 识别二元组文法分析
  • 从零开始学习 Lucene.Net:.NET Core 中的全文搜索与索引管理
  • [密码学基础]GMT 0002-2012 SM4分组密码算法 技术规范深度解析
  • Windows系统C盘深度清理指南
  • 指令与权限
  • 基于大语言模型的自动化单元测试生成系统及测试套件评估方法
  • 【多线程5】面试常考锁知识点