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 相关文章推荐
Apache2 httpd.conf 中文版
Dec 06 PHP
php生成图形验证码几种方法小结
Aug 15 PHP
php中apc缓存使用示例
Dec 25 PHP
php实现四舍五入的方法小结
Mar 03 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
Apr 17 PHP
PHP面试题之文件目录操作
Oct 15 PHP
理解php依赖注入和控制反转
May 11 PHP
php实现通过soap调用.Net的WebService asmx文件
Feb 27 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
Oct 11 PHP
php策略模式简单示例分析【区别于工厂模式】
Sep 25 PHP
在 PHP 和 Laravel 中使用 Traits的方法
Nov 13 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 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+mysql实现数据库随机重排实例
2014/10/17 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
2016/05/27 PHP
PHP基于反射机制实现插件的可插拔设计详解
2016/11/10 PHP
PHP基于递归实现的约瑟夫环算法示例
2017/08/27 PHP
详解Laravel服务容器的绑定与解析
2019/11/05 PHP
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
浅谈Javascript中的Function与Object
2015/01/26 Javascript
Jquery实现鼠标移动放大图片功能实例
2015/03/25 Javascript
JavaScript让Textarea支持tab按键的方法
2015/06/26 Javascript
jQuery在线选座位插件seat-charts特效代码分享
2015/08/27 Javascript
JS设置下拉列表框当前所选值的方法
2015/12/22 Javascript
自带气泡提示的vue校验插件(vue-verify-pop)
2017/04/07 Javascript
详解Angular2中Input和Output用法及示例
2017/05/21 Javascript
Vue全家桶实践项目总结(推荐)
2017/11/04 Javascript
AngularJs 最新验证手机号码的实例,成功测试通过
2017/11/26 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
2018/05/29 Javascript
JQuery插件tablesorter表格排序实现过程解析
2020/05/28 jQuery
JavaScript实现雪花飘落效果
2020/12/27 Javascript
介绍Python中的__future__模块
2015/04/27 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
2019/01/17 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
2019/08/07 Python
详解python中的生成器、迭代器、闭包、装饰器
2019/08/22 Python
python用线性回归预测股票价格的实现代码
2019/09/04 Python
用Python写一个自动木马程序
2019/09/17 Python
如何写python的配置文件
2020/06/07 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
2020/12/11 Python
Timex手表官网:美国运动休闲手表品牌
2017/01/28 全球购物
Bluebella美国官网:英国性感内衣品牌
2018/10/04 全球购物
类如何去实现接口
2013/12/19 面试题
优秀求职信范文分享
2013/12/19 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
内乡县衙导游词
2015/02/05 职场文书
幼儿园小班个人总结
2015/02/12 职场文书
56句经典英文座右铭
2019/08/09 职场文书