`
天梯梦
  • 浏览: 13731737 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

PHP判断浏览器类型和浏览器语言(附各国语言简写代码)

阅读更多

用php语言来判断浏览器类型其实很简单。


因为浏览器在和服务器连接时候都会先发送一些包含自己信息的内容(浏览器类型、语言啦)。

这里我们主要分析的是_SERVER["HTTP_USER_AGENT"](浏览器类型)和_SERVER["HTTP_ACCEPT_LANGUAGE"](浏览器语言)。

 

我们所要做的就是把这些内容读出来,然后用strpos或者preg_match函数来对比就可以了。

判断浏览器类型:

 

<?php echo $_SERVER["HTTP_USER_AGENT"]; ?>
 

判断浏览器语言:

 

<?php echo $_SERVER["HTTP_ACCEPT_LANGUAGE"]; ?>
 

判断浏览器类型的具体程序如下:

 

<?php
	if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 8.0"))
	echo "Internet Explorer 8.0";
	else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 7.0"))
	echo "Internet Explorer 7.0";
	else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 6.0"))
	echo "Internet Explorer 6.0";
	else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/3"))
	echo "Firefox 3";
	else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/2"))
	echo "Firefox 2";
	else if(strpos($_SERVER["HTTP_USER_AGENT"],"Chrome"))
	echo "Google Chrome";
	else if(strpos($_SERVER["HTTP_USER_AGENT"],"Safari"))
	echo "Safari";
	else if(strpos($_SERVER["HTTP_USER_AGENT"],"Opera"))
	echo "Opera";
	else echo $_SERVER["HTTP_USER_AGENT"];
?>
 

判断浏览器语言的具体程序如下:

 

<?php
	$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4); //只取前4位,这样只判断最优先的语言。如果取前5位,可能出现en,zh的情况,影响判断。
	if (preg_match("/zh-c/i", $lang))
	echo "简体中文";
	else if (preg_match("/zh/i", $lang))
	echo "繁體中文";
	else if (preg_match("/en/i", $lang))
	echo "English";
	else if (preg_match("/fr/i", $lang))
	echo "French";
	else if (preg_match("/de/i", $lang))
	echo "German";
	else if (preg_match("/jp/i", $lang))
	echo "Japanese";
	else if (preg_match("/ko/i", $lang))
	echo "Korean";
	else if (preg_match("/es/i", $lang))
	echo "Spanish";
	else if (preg_match("/sv/i", $lang))
	echo "Swedish";
	else echo $_SERVER["HTTP_ACCEPT_LANGUAGE"];
?>
 


判断浏览器类型主要是靠分析_SERVER["HTTP_USER_AGENT"]的内容,而分析浏览器语言则是分析_SERVER["HTTP_ACCEPT_LANGUAGE"]。

 

 

或者:

 

function getPreferredLanguage() {
	$langs = array();
	if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
		// break up string into pieces (languages and q factors)
		preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)s*(;s*qs*=s*(1|0.[0-9]+))?/i',
				$_SERVER['HTTP_ACCEPT_LANGUAGE'], $lang_parse);
		if (count($lang_parse[1])) {
			// create a list like "en" => 0.8
			$langs = array_combine($lang_parse[1], $lang_parse[4]);
			// set default to 1 for any without q factor
			foreach ($langs as $lang => $val) {
				if ($val === '') $langs[$lang] = 1;
			}
			// sort list based on value
			arsort($langs, SORT_NUMERIC);
		}
	}
	//extract most important (first)
	foreach ($langs as $lang => $val) { break; }
	//if complex language simplify it
	if (stristr($lang,"-")) {$tmp = explode("-",$lang); $lang = $tmp[0]; }
	return $lang;
}
 
  • af 公用荷兰语
  • af-ZA 公用荷兰语 – 南非
  • sq 阿尔巴尼亚
  • sq-AL 阿尔巴尼亚 -阿尔巴尼亚
  • ar 阿拉伯语
  • ar-DZ 阿拉伯语 -阿尔及利亚
  • ar-BH 阿拉伯语 -巴林
  • ar-EG 阿拉伯语 -埃及
  • ar-IQ 阿拉伯语 -伊拉克
  • ar-JO 阿拉伯语 -约旦
  • ar-KW 阿拉伯语 -科威特
  • ar-LB 阿拉伯语 -黎巴嫩
  • ar-LY 阿拉伯语 -利比亚
  • ar-MA 阿拉伯语 -摩洛哥
  • ar-OM 阿拉伯语 -阿曼
  • ar-QA 阿拉伯语 -卡塔尔
  • ar-SA 阿拉伯语 – 沙特阿拉伯
  • ar-SY 阿拉伯语 -叙利亚共和国
  • ar-TN 阿拉伯语 -北非的共和国
  • ar-AE 阿拉伯语 – 阿拉伯联合酋长国
  • ar-YE 阿拉伯语 -也门
  • hy 亚美尼亚
  • hy-AM 亚美尼亚的 -亚美尼亚
  • az Azeri
  • az-AZ-Cyrl Azeri-(西里尔字母的) 阿塞拜疆
  • az-AZ-Latn Azeri(拉丁文)- 阿塞拜疆
  • eu 巴斯克
  • eu-ES 巴斯克 -巴斯克
  • be Belarusian
  • be-BY Belarusian-白俄罗斯
  • bg 保加利亚
  • bg-BG 保加利亚 -保加利亚
  • ca 嘉泰罗尼亚
  • ca-ES 嘉泰罗尼亚 -嘉泰罗尼亚
  • zh-HK 华 – 香港的 SAR
  • zh-MO 华 – 澳门的 SAR
  • zh-CN 华 -中国
  • zh-CHS 华 (单一化)
  • zh-SG 华 -新加坡
  • zh-TW 华 -台湾
  • zh-CHT 华 (传统的)
  • hr 克罗埃西亚
  • hr-HR 克罗埃西亚 -克罗埃西亚
  • cs 捷克
  • cs-CZ 捷克 – 捷克
  • da 丹麦文
  • da-DK 丹麦文 -丹麦
  • div Dhivehi
  • div-MV Dhivehi-马尔代夫
  • nl 荷兰
  • nl-BE 荷兰 -比利时
  • nl-NL 荷兰 – 荷兰
  • en 英国
  • en-AU 英国 -澳洲
  • en-BZ 英国 -伯利兹
  • en-CA 英国 -加拿大
  • en-CB 英国 -加勒比海
  • en-IE 英国 -爱尔兰
  • en-JM 英国 -牙买加
  • en-NZ 英国 – 新西兰
  • en-PH 英国 -菲律宾共和国
  • en-ZA 英国 – 南非
  • en-TT 英国 – 千里达托贝哥共和国
  • en-GB 英国 – 英国
  • en-US 英国 – 美国
  • en-ZW 英国 -津巴布韦
  • et 爱沙尼亚
  • et-EE 爱沙尼亚的 -爱沙尼亚
  • fo Faroese
  • fo-FO Faroese- 法罗群岛
  • fa 波斯语
  • fa-IR 波斯语 -伊朗王国
  • fi 芬兰语
  • fi-FI 芬兰语 -芬兰
  • fr 法国
  • fr-BE 法国 -比利时
  • fr-CA 法国 -加拿大
  • fr-FR 法国 -法国
  • fr-LU 法国 -卢森堡
  • fr-MC 法国 -摩纳哥
  • fr-CH 法国 -瑞士
  • gl 加利西亚
  • gl-ES 加利西亚 -加利西亚
  • ka 格鲁吉亚州
  • ka-GE 格鲁吉亚州 -格鲁吉亚州
  • de 德国
  • de-AT 德国 -奥地利
  • de-DE 德国 -德国
  • de-LI 德国 -列支敦士登
  • de-LU 德国 -卢森堡
  • de-CH 德国 -瑞士
  • el 希腊
  • el-GR 希腊 -希腊
  • gu Gujarati
  • gu-IN Gujarati-印度
  • he 希伯来
  • he-IL 希伯来 -以色列
  • hi 北印度语
  • hi-IN 北印度的 -印度
  • hu 匈牙利
  • hu-HU 匈牙利的 -匈牙利
  • is 冰岛语
  • is-IS 冰岛的 -冰岛
  • id 印尼
  • id-ID 印尼 -印尼
  • it 意大利
  • it-IT 意大利 -意大利
  • it-CH 意大利 -瑞士
  • ja 日本
  • ja-JP 日本 -日本
  • kn 卡纳达语
  • kn-IN 卡纳达语 -印度
  • kk Kazakh
  • kk-KZ Kazakh-哈萨克
  • kok Konkani
  • kok-IN Konkani-印度
  • ko 韩国
  • ko-KR 韩国 -韩国
  • ky Kyrgyz
  • ky-KZ Kyrgyz-哈萨克
  • lv 拉脱维亚
  • lv-LV 拉脱维亚的 -拉脱维亚
  • lt 立陶宛
  • lt-LT 立陶宛 -立陶宛
  • mk 马其顿
  • mk-MK 马其顿 -FYROM
  • ms 马来
  • ms-BN 马来 -汶莱
  • ms-MY 马来 -马来西亚
  • mr 马拉地语
  • mr-IN 马拉地语 -印度
  • mn 蒙古
  • mn-MN 蒙古 -蒙古
  • no 挪威
  • nb-NO 挪威 (Bokm?l) – 挪威
  • nn-NO 挪威 (Nynorsk)- 挪威
  • pl 波兰
  • pl-PL 波兰 -波兰
  • pt 葡萄牙
  • pt-BR 葡萄牙 -巴西
  • pt-PT 葡萄牙 -葡萄牙
  • pa Punjab 语
  • pa-IN Punjab 语 -印度
  • ro 罗马尼亚语
  • ro-RO 罗马尼亚语 -罗马尼亚
  • ru 俄国
  • ru-RU 俄国 -俄国
  • sa 梵文
  • sa-IN 梵文 -印度
  • sr-SP-Cyrl 塞尔维亚 -(西里尔字母的) 塞尔维亚共和国
  • sr-SP-Latn 塞尔维亚 (拉丁文)- 塞尔维亚共和国
  • sk 斯洛伐克
  • sk-SK 斯洛伐克 -斯洛伐克
  • sl 斯洛文尼亚
  • sl-SI 斯洛文尼亚 -斯洛文尼亚
  • es 西班牙
  • es-AR 西班牙 -阿根廷
  • es-BO 西班牙 -玻利维亚
  • es-CL 西班牙 -智利
  • es-CO 西班牙 -哥伦比亚
  • es-CR 西班牙 – 哥斯达黎加
  • es-DO 西班牙 – 多米尼加共和国
  • es-EC 西班牙 -厄瓜多尔
  • es-SV 西班牙 – 萨尔瓦多
  • es-GT 西班牙 -危地马拉
  • es-HN 西班牙 -洪都拉斯
  • es-MX 西班牙 -墨西哥
  • es-NI 西班牙 -尼加拉瓜
  • es-PA 西班牙 -巴拿马
  • es-PY 西班牙 -巴拉圭
  • es-PE 西班牙 -秘鲁
  • es-PR 西班牙 – 波多黎各
  • es-ES 西班牙 -西班牙
  • es-UY 西班牙 -乌拉圭
  • es-VE 西班牙 -委内瑞拉
  • sw Swahili
  • sw-KE Swahili-肯尼亚
  • sv 瑞典
  • sv-FI 瑞典 -芬兰
  • sv-SE 瑞典 -瑞典
  • syr Syriac
  • syr-SY Syriac-叙利亚共和国
  • ta 坦米尔
  • ta-IN 坦米尔 -印度
  • tt Tatar
  • tt-RU Tatar-俄国
  • te Telugu
  • te-IN Telugu-印度
  • th 泰国
  • th-TH 泰国 -泰国
  • tr 土耳其语
  • tr-TR 土耳其语 -土耳其
  • uk 乌克兰
  • uk-UA 乌克兰 -乌克兰
  • ur Urdu
  • ur-PK Urdu-巴基斯坦
  • uz Uzbek
  • uz-UZ-Cyrl Uzbek-(西里尔字母的) 乌兹别克斯坦
  • uz-UZ-Latn Uzbek(拉丁文)- 乌兹别克斯坦
  • vi 越南
  • vi-VN 越南 -越南

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    世界语言代码json文件

    世界语言代码,比如中国是zh-cn,对应的国家名字也有相关的字段

    国家代码和语言代码JSON

    浏览器language 收集, 可根据国家获取语言代码和根据国家代码获取国家中英文名称等, json 格式,可以在任何地方使用 国家缩写代码以及国家语言代码json格式收集,中英文名称

    Android各国语言缩写以及各国语言Values文件夹命名规则

    Android各国语言缩写以及各国语言Values文件夹命名规则

    c++实现的将源代码在浏览器显示并使代码的关键字在浏览器变色

    标题中的“c++实现的将源代码在浏览器显示并使代码的关键字在浏览器变色”意味着我们要探讨一个C++程序,它的功能是读取源代码文件,将其转换为HTML格式,以便于在Web浏览器中查看,并且能高亮显示代码中的关键字。...

    c# 简单浏览器源代码(无自定义控件)

    标题“C# 简单浏览器源代码(无自定义控件)”指出这是一个基于C#编程语言实现的简单浏览器项目,它没有使用任何自定义的控件,这意味着开发者主要依赖.NET Framework提供的标准控件来构建用户界面。 【描述解读】 ...

    pb 浏览器源代码

    PB浏览器源代码是一个关于浏览器开发的专业项目,其中包含了一系列用于构建和理解浏览器工作原理的源文件。PB可能是“Protocol Buffers”(协议缓冲区)的缩写,它是一种数据序列化协议,通常用于高效地存储和传输...

    国内首个实现纯浏览器内编译、执行全链路的自研静态类型的编译型通用编程语言 为 WebAssembly 而生的通用编程语言

    静态类型语言要求在编译时声明变量类型,这有助于防止运行时类型错误,提高代码的稳定性和性能。 3. **浏览器内的编译和执行**:在浏览器内完成编译和执行可以减少对服务器的依赖,提高用户体验,因为用户无需等待...

    vc制作文件浏览器visual c++源代码

    在这个项目中,`文件浏览器Dlg.cpp` 和 `文件浏览器Dlg.h` 可能是与对话框类相关的源代码,其中`Dlg`通常是对话框类的缩写,负责处理用户与对话框的交互。 2. **源代码结构**: - `文件浏览器.aps` 是MFC应用程序...

    Android 各国语言缩写及简称详细介绍

    总的来说,了解并掌握Android各国语言的缩写和国家地区缩写对于开发能够服务全球用户的Android应用是必不可少的。通过正确设置资源文件,开发者可以确保他们的应用能够适应各种文化和语言环境,从而提高用户满意度。

    C#编写的几款绝对好的网页浏览器

    本资源包汇集了几款由C#编写的优秀网页浏览器,这些浏览器不仅功能齐全,而且具有开源特性,允许开发者查看并学习源代码,这对于技术爱好者和初学者来说是一份宝贵的资源。 首先,我们来看"search1.0(好用)",这款...

    pb做的浏览器模型_浏览器_pb浏览器_

    "pb做的浏览器"可能指的是一个特定的浏览器项目或者框架,这里提到的"pb"可能是项目名称的缩写,或者是某种技术的简称,比如ProtoBuf(Protocol Buffers)——Google开发的一种数据序列化协议,用于高效地存储和传输...

    Chomsky文法类型判断

    根据提供的实验报告,我们可以深入探讨Chomsky文法类型的判断方法以及其实现细节。这份报告主要涉及四个不同类型的文法——0型文法(短语文法)、1型文法(上下文有关文法)、2型文法(上下文无关文法)以及3型文法(正则...

    电脑浏览器变手机浏览器方法

    标题中的“电脑浏览器变手机浏览器方法”指的是将电脑上的网页浏览体验模拟成手机浏览器的体验,这通常通过特定的浏览器插件或扩展实现。这样的工具可以让用户在电脑上以接近移动设备的方式查看和操作网站,方便进行...

    ISO639-1语言缩写代码

    ISO639-1语言缩写标准,来自International Organization for Standardization。详情可参考https://www.iso.org/iso-639-language-codes.html

    多国语言 简写对照表

    标题中的“多国语言简写对照表”是指在信息技术领域,特别是操作系统、编程语言或网站开发中用于标识和处理多种语言的简短代码。这些简写通常由两个或三个字母组成,代表不同的语言和方言,方便系统进行本地化和国际...

    android各国语言缩写

    android上,设置默认语言时可用到。

    飞虎浏览器 源码

    【飞虎浏览器 源码】是一个以易语言编写的浏览器程序,对于初学者和有经验的开发者来说,它提供了一个宝贵的...总之,【飞虎浏览器 源码】是一个宝贵的教育资源,对于易语言和浏览器开发的学习者具有极高的参考价值。

    手机免流量上网浏览器php源码

    【标题】"手机免流量上网浏览器php源码"所涉及的知识点主要集中在PHP编程语言以及在移动设备上构建浏览应用的原理。PHP是一种广泛使用的开源脚本语言,尤其适合于Web开发,可以嵌入到HTML中,用于生成动态网页内容。...

    PHP入门学习-PHP起步,PHP语言,用PHP进行Web编程

    此外,还要熟悉如何在HTML中嵌入PHP代码,以及设置和运行PHP环境,如安装XAMPP或WAMP等集成开发环境。 接下来,我们深入"PHP语言"。PHP语言具有丰富的内置函数,可以处理各种任务,如字符串操作、日期和时间处理、...

    绿色浏览器-仿站专用的浏览器

    仿站有了这个浏览器,将十分轻松的拆分代码、图片、CSS等等。详细功能还有:广告过滤, 鼠标手势, 鼠标拖拽, 鼠标拖拽菜单, 自动填表, 自动滚屏, 自动刷新, 自动隐藏, 自动保存, 分类保存, 身份信息, 模拟按键, 网速...

Global site tag (gtag.js) - Google Analytics