PHP检测用户语言的方法


Posted in PHP onJune 15, 2015

本文实例讲述了PHP检测用户语言的方法。分享给大家供大家参考。具体如下:

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*q\s*=\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;
}

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
模板引擎smarty工作原理以及使用示例
May 25 PHP
微信营销平台系统?刮刮乐的开发
Jun 10 PHP
php通过隐藏表单控件获取到前两个页面的url
Sep 09 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
Dec 17 PHP
php开发微信支付获取用户地址
Oct 04 PHP
PHP递归实现层级树状展开
Apr 01 PHP
php防止sql注入的方法详解
Feb 20 PHP
php读取本地json文件的实例
Mar 07 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
Apr 21 PHP
PHP使用PDO抽象层获取查询结果的方法示例
May 10 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
Apr 09 PHP
PHP中mysqli_get_server_version()的实例用法
Feb 03 PHP
php实现求相对时间函数
Jun 15 #PHP
php数组随机排序实现方法
Jun 13 #PHP
隐性调用php程序的方法
Jun 13 #PHP
PHP获取数组的键与值方法小结
Jun 13 #PHP
PHP中你应该知道的require()文件包含的正确用法
Jun 12 #PHP
PHP查找与搜索数组元素方法总结
Jun 12 #PHP
php使用array_search函数实现数组查找的方法
Jun 12 #PHP
You might like
php下安装配置fckeditor编辑器的方法
2011/03/02 PHP
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
2016/03/22 PHP
thinkphp 验证码 的使用小结
2017/05/07 PHP
PDO::query讲解
2019/01/29 PHP
javascript 最常用的10个自定义函数[推荐]
2009/12/26 Javascript
jquery+css+ul模拟列表菜单具体实现思路
2013/04/15 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
JavaScript中几种排序算法的简单实现
2015/07/29 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
Angularjs的ng-repeat中去除重复数据的方法
2016/08/05 Javascript
jQuery的deferred对象使用详解
2016/09/25 Javascript
Vue.js实现移动端短信验证码功能
2017/03/29 Javascript
Vue-Router的使用方法
2018/09/05 Javascript
对angularJs中自定义指令replace的属性详解
2018/10/09 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
2019/06/03 Javascript
微信小程序修改checkbox的样式代码实例
2020/01/21 Javascript
JavaScript 装逼指南(js另类写法)
2020/05/10 Javascript
vue使用exif获取图片旋转,压缩的示例代码
2020/12/11 Vue.js
[01:56]《DOTA2》中文配音CG
2013/04/22 DOTA
[00:53]TI3正赛第三天 DK怒破A队不败金身 现场国旗飘扬热血激昂
2013/08/10 DOTA
[01:01:01]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第一场 10.29
2020/10/29 DOTA
Python编写检测数据库SA用户的方法
2014/07/11 Python
Python的Flask框架应用调用Redis队列数据的方法
2016/06/06 Python
基于树莓派的语音对话机器人
2019/06/17 Python
pandas计数 value_counts()的使用
2019/06/24 Python
python pytest进阶之conftest.py详解
2019/06/27 Python
python判断自身是否正在运行的方法
2019/08/08 Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
2020/10/28 Python
scrapy头部修改的方法详解
2020/12/06 Python
css3气泡 css3关键帧动画创建的动态通知气泡
2013/02/26 HTML / CSS
波兰补充商店:Muscle Power
2018/10/29 全球购物
《阳光》教学反思
2014/02/23 职场文书
挂牌仪式策划方案
2014/05/18 职场文书
考生诚信考试承诺书
2014/05/23 职场文书
课题研究阶段性总结
2015/08/13 职场文书