- 浏览: 13731737 次
- 性别:
- 来自: 洛杉矶
文章分类
- 全部博客 (1994)
- Php / Pear / Mysql / Node.js (378)
- Javascript /Jquery / Bootstrap / Web (435)
- Phone / IOS / Objective-C / Swift (137)
- Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux (335)
- Perl / Koha / Ruby / Markdown (8)
- Java / Jsp (12)
- Python 2 / Wxpython (25)
- Codeigniter / CakePHP (32)
- Div / Css / XML / HTML5 (179)
- WP / Joomla! / Magento / Shopify / Drupal / Moodle / Zimbra (275)
- Apache / VPN / Software (31)
- AS3.0/2.0 / Flex / Flash (45)
- Smarty (6)
- SEO (24)
- Google / Facebook / Pinterest / SNS (80)
- Tools (22)
最新评论
-
1455975567:
xuezhongyu01 写道wocan23 写道我想问下那个 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
xuezhongyu01:
wocan23 写道我想问下那个111.1是怎么得来的我也看不 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
18335864773:
试试 pageoffice 在线打开 PDF 文件吧. pag ...
jquery在线预览PDF文件,打开PDF文件 -
青春依旧:
opacity: 0.5; 个人喜欢这种方式!关于其他css特 ...
css透明度的设置 (兼容所有浏览器) -
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
搞定网页打印自动分页问题
用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 越南 -越南
发表评论
-
PHP: 在类(class)中加载动态函数, 变量函数或半变量函数 variable function/method
2016-09-03 07:54 7171最终实例在下方 以前 ... -
MySQL入门 (七) : 储存引擎与资料型态
2016-09-03 07:49 45531 表格与储存引擎 表格(table)是资料库中用来储存 ... -
MySQL入门 (六) : 字元集与资料库
2016-09-03 07:47 45661 Character Set与Collation 任何 ... -
MySQL入门 (五) : CRUD 与资料维护
2016-09-03 07:46 54811 取得表格资讯 1.1 DESCRIBE指令 「 ... -
MySQL入门 (四) : JOIN 与UNION 查询
2016-09-03 07:42 45001 使用多个表格 在「world」资料库的「countr ... -
PHP: 关键字global 和 超全局变量$GLOBALS的用法、解释、区别
2016-08-31 12:07 5039$GLOBALS 是一个关联数组,每一个变量为一个 ... -
MySQL入门 (三) : 运算式与函式
2016-08-31 12:01 4383运算式(expressions)已经 ... -
MySQL入门 (二) : SELECT 基础查询
2016-08-31 11:56 46811 查询资料前的基本概念 1.1 表格、纪录 ... -
MySQL入门 (一) : 资料库概论与MySQL的安装
2016-08-31 11:51 44571. 储存与管理资料 储存与管理资料一直是资讯应用上最基本 ... -
MySQL入门 (九) : 子查询 Subquery
2016-08-30 02:26 44471 一个叙述中的查询叙述 子查询(subquery)是一 ... -
PHP: 用readonly取代disabled来获取input值 submit a disabled input in a form could not ge
2016-08-30 02:21 2708The form is like below; <f ... -
PHP7革新与性能优化
2016-08-30 02:20 2146有幸参与2015年的PHP技 ... -
Mysql: 图解 inner join、left join、right join、full outer join、union、union all的区别
2016-08-18 06:03 3122对于SQL的Join,在学习起来可能是比较乱的。我们知道, ... -
Comet 反Ajax: 基于jQuery与PHP实现Ajax长轮询(LongPoll)
2016-08-18 06:00 1377传统的AJAX轮询方式,客服端以用户定义的时间间隔去服务器上 ... -
PHP:ServerPush (Comet推送) 技术的探讨
2016-08-18 05:58 1039PHP中Push(推送)技术的探讨 [http://vi ... -
PHP: 手把手编写自己的 MVC 框架实例教程
2016-08-16 05:33 18131 什么是MVC MVC模式(Model-View-Con ... -
PHP5: mysqli 插入, 查询, 更新和删除 Insert Update Delete Using mysqli (CRUD)
2016-07-29 12:55 1747原文: PHP5: mysqli 插入, 查询, 更新 ... -
MongoDB 教程索引 (附有视频)
2016-07-27 10:54 736MongoDB 教程索引 MongoDB 教程一: ... -
Node.js 模块之Nimble流程控制
2016-07-18 12:59 1081NodeJS异步的特性有时候 ... -
Node.js web应用模块之Supervisor
2016-07-18 12:56 2327在开发或调试Node.js应 ...
相关推荐
世界语言代码,比如中国是zh-cn,对应的国家名字也有相关的字段
浏览器language 收集, 可根据国家获取语言代码和根据国家代码获取国家中英文名称等, json 格式,可以在任何地方使用 国家缩写代码以及国家语言代码json格式收集,中英文名称
Android各国语言缩写以及各国语言Values文件夹命名规则
标题中的“c++实现的将源代码在浏览器显示并使代码的关键字在浏览器变色”意味着我们要探讨一个C++程序,它的功能是读取源代码文件,将其转换为HTML格式,以便于在Web浏览器中查看,并且能高亮显示代码中的关键字。...
标题“C# 简单浏览器源代码(无自定义控件)”指出这是一个基于C#编程语言实现的简单浏览器项目,它没有使用任何自定义的控件,这意味着开发者主要依赖.NET Framework提供的标准控件来构建用户界面。 【描述解读】 ...
PB浏览器源代码是一个关于浏览器开发的专业项目,其中包含了一系列用于构建和理解浏览器工作原理的源文件。PB可能是“Protocol Buffers”(协议缓冲区)的缩写,它是一种数据序列化协议,通常用于高效地存储和传输...
静态类型语言要求在编译时声明变量类型,这有助于防止运行时类型错误,提高代码的稳定性和性能。 3. **浏览器内的编译和执行**:在浏览器内完成编译和执行可以减少对服务器的依赖,提高用户体验,因为用户无需等待...
在这个项目中,`文件浏览器Dlg.cpp` 和 `文件浏览器Dlg.h` 可能是与对话框类相关的源代码,其中`Dlg`通常是对话框类的缩写,负责处理用户与对话框的交互。 2. **源代码结构**: - `文件浏览器.aps` 是MFC应用程序...
总的来说,了解并掌握Android各国语言的缩写和国家地区缩写对于开发能够服务全球用户的Android应用是必不可少的。通过正确设置资源文件,开发者可以确保他们的应用能够适应各种文化和语言环境,从而提高用户满意度。
本资源包汇集了几款由C#编写的优秀网页浏览器,这些浏览器不仅功能齐全,而且具有开源特性,允许开发者查看并学习源代码,这对于技术爱好者和初学者来说是一份宝贵的资源。 首先,我们来看"search1.0(好用)",这款...
"pb做的浏览器"可能指的是一个特定的浏览器项目或者框架,这里提到的"pb"可能是项目名称的缩写,或者是某种技术的简称,比如ProtoBuf(Protocol Buffers)——Google开发的一种数据序列化协议,用于高效地存储和传输...
根据提供的实验报告,我们可以深入探讨Chomsky文法类型的判断方法以及其实现细节。这份报告主要涉及四个不同类型的文法——0型文法(短语文法)、1型文法(上下文有关文法)、2型文法(上下文无关文法)以及3型文法(正则...
标题中的“电脑浏览器变手机浏览器方法”指的是将电脑上的网页浏览体验模拟成手机浏览器的体验,这通常通过特定的浏览器插件或扩展实现。这样的工具可以让用户在电脑上以接近移动设备的方式查看和操作网站,方便进行...
ISO639-1语言缩写标准,来自International Organization for Standardization。详情可参考https://www.iso.org/iso-639-language-codes.html
标题中的“多国语言简写对照表”是指在信息技术领域,特别是操作系统、编程语言或网站开发中用于标识和处理多种语言的简短代码。这些简写通常由两个或三个字母组成,代表不同的语言和方言,方便系统进行本地化和国际...
android上,设置默认语言时可用到。
【飞虎浏览器 源码】是一个以易语言编写的浏览器程序,对于初学者和有经验的开发者来说,它提供了一个宝贵的...总之,【飞虎浏览器 源码】是一个宝贵的教育资源,对于易语言和浏览器开发的学习者具有极高的参考价值。
【标题】"手机免流量上网浏览器php源码"所涉及的知识点主要集中在PHP编程语言以及在移动设备上构建浏览应用的原理。PHP是一种广泛使用的开源脚本语言,尤其适合于Web开发,可以嵌入到HTML中,用于生成动态网页内容。...
此外,还要熟悉如何在HTML中嵌入PHP代码,以及设置和运行PHP环境,如安装XAMPP或WAMP等集成开发环境。 接下来,我们深入"PHP语言"。PHP语言具有丰富的内置函数,可以处理各种任务,如字符串操作、日期和时间处理、...
仿站有了这个浏览器,将十分轻松的拆分代码、图片、CSS等等。详细功能还有:广告过滤, 鼠标手势, 鼠标拖拽, 鼠标拖拽菜单, 自动填表, 自动滚屏, 自动刷新, 自动隐藏, 自动保存, 分类保存, 身份信息, 模拟按键, 网速...