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 相关文章推荐
pdo中使用参数化查询sql
Aug 11 PHP
PHP实现生成唯一编号(36进制的不重复编号)
Jul 01 PHP
php实现的DateDiff和DateAdd时间函数代码分享
Aug 16 PHP
PHP5.3安装Zend Guard Loader图文教程
Sep 29 PHP
PHP导出带样式的Excel示例代码
Aug 28 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
Nov 20 PHP
php实现用户登陆简单实例
Apr 04 PHP
PHP getNamespaces()函数讲解
Feb 03 PHP
浅谈php使用curl模拟多线程发送请求
Mar 08 PHP
PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
Jun 08 PHP
php伪静态验证码不显示的解决方案
Sep 26 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
Feb 22 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
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
2013/06/26 Javascript
javascript如何动态加载表格与动态添加表格行
2013/11/27 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
javascript中match函数的用法小结
2014/02/08 Javascript
jquery datepicker参数介绍和示例
2014/04/15 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
js使用心得分享
2015/01/13 Javascript
JavaScript中定义函数的三种方法
2015/03/12 Javascript
jQuery实现购物车数字加减效果
2015/03/14 Javascript
jQuery布局组件EasyUI Layout使用方法详解
2017/02/28 Javascript
CentOS 安装NodeJS V8.0.0的方法
2017/06/15 NodeJs
js动态引入的四种方法
2018/05/05 Javascript
使用vue-infinite-scroll实现无限滚动效果
2018/06/22 Javascript
实例详解vue.js浅度监听和深度监听及watch用法
2018/08/16 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
2018/11/15 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
详解Python中的分支和循环结构
2020/02/11 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
2020/02/14 Python
使用python-Jenkins批量创建及修改jobs操作
2020/05/12 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
CSS3 box-sizing属性
2009/04/17 HTML / CSS
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
瑞士男士时尚网上商店:Babista
2020/05/14 全球购物
如何在存储过程中使用Loop
2016/01/05 面试题
保险专业自荐信范文
2014/02/20 职场文书
售后求职信范文
2014/03/15 职场文书
给校长的建议书500字
2014/05/15 职场文书
营销与策划专业求职信
2014/06/20 职场文书
竞选学委演讲稿
2014/09/13 职场文书
北京天坛导游词
2015/02/12 职场文书
新学期家长寄语2016
2015/12/03 职场文书
python通配符之glob模块的使用详解
2021/04/24 Python
SONY600GR,国产收音机厂商永远的痛
2022/04/05 无线电