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 相关文章推荐
用PHP读取RSS feed的代码
Aug 01 PHP
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
Dec 06 PHP
php !function_exists("T7FC56270E7A70FA81A5935B72EACBE29"))代码解密
Jan 07 PHP
PHP array操作10个小技巧分享
Jun 23 PHP
PHP安全性漫谈
Jun 28 PHP
解析php根据ip查询所在地区(非常有用,赶集网就用到)
Jul 01 PHP
神盾加密解密教程(二)PHP 神盾解密
Jun 08 PHP
php的SimpleXML方法读写XML接口文件实例解析
Jun 16 PHP
php异步多线程swoole用法实例
Nov 14 PHP
详解php与ethereum客户端交互
Apr 28 PHP
PHP7 mongoDB扩展使用的方法分享
May 02 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
Feb 21 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中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
2011/11/26 PHP
php 在字符串指定位置插入新字符的简单实现
2016/06/28 PHP
php版阿里云OSS图片上传类详解
2016/12/01 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
2019/12/12 PHP
MooTools 1.2介绍
2009/09/14 Javascript
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
在百度知道团队中快速审批新成员的js脚本
2014/02/02 Javascript
回车直接实现点击某按钮的效果即触发单击事件
2014/02/27 Javascript
javascript二维数组转置实例
2015/01/22 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
2015/09/22 Javascript
Jquery Ajax Error 调试错误的技巧
2015/11/20 Javascript
js实现动态创建的元素绑定事件
2016/07/19 Javascript
javascript 判断页面访问方式电脑或者移动端
2016/09/19 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
2017/01/22 Javascript
Angularjs单选改为多选的开发过程及问题解析
2017/02/17 Javascript
Webpack打包css后z-index被重新计算的解决方法
2017/06/18 Javascript
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
2017/12/23 Javascript
vue脚手架及vue-router基本使用
2018/04/09 Javascript
js实现选项卡效果
2020/03/07 Javascript
vue 清空input标签 中file的值操作
2020/07/21 Javascript
AngularJs的$http发送POST请求,php无法接收Post的数据问题及解决方案
2020/08/13 Javascript
[01:20]DOTA2 2017国际邀请赛冠军之路无止竞
2017/06/19 DOTA
python访问sqlserver示例
2014/02/10 Python
mac系统安装Python3初体验
2018/01/02 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
JupyterNotebook 输出窗口的显示效果调整方法
2020/04/13 Python
使用Python Tkinter实现剪刀石头布小游戏功能
2020/10/23 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
2020/11/13 Python
亚马逊中国官方网站:amazon.cn
2017/05/25 全球购物
美国珠宝店:Helzberg Diamonds
2018/10/24 全球购物
师范类求职信
2014/06/21 职场文书
医院安全生产月活动总结
2014/07/05 职场文书
农村党员对照检查材料
2014/09/24 职场文书
学校运动会通讯稿
2015/07/18 职场文书
认识实习感想
2015/08/10 职场文书
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers