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获得当前的脚本网址
Dec 10 PHP
PHP用GD库生成高质量的缩略图片
Mar 09 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
Nov 13 PHP
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
Sep 24 PHP
PHP curl使用实例
Jul 02 PHP
php实现图片上传时添加文字和图片水印技巧
Apr 18 PHP
详谈PHP程序Laravel 5框架的优化技巧
Jul 18 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
Aug 21 PHP
PHP多进程之pcntl_fork的实例详解
Oct 15 PHP
PHP使用反向Ajax技术实现在线客服系统详解
Jul 01 PHP
php实现登录页面的简单实例
Sep 29 PHP
解决laravel id非自增 模型取回为0 的问题
Oct 11 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中cookie的作用域
2008/03/27 PHP
PHP采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
2017/01/13 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
PHP批斗大会之缺失的异常详解
2019/07/09 PHP
在js中使用"with"语句中跨frame的变量引用问题
2007/03/08 Javascript
无阻塞加载脚本分析[全]
2011/01/20 Javascript
JQuery设置文本框和密码框得到焦点时的样式
2013/08/30 Javascript
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
Bootstrap3 datetimepicker控件使用实例
2016/12/13 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
2017/06/12 Javascript
jQuery实现 RadioButton做必选校验功能
2017/06/15 jQuery
js精确的加减乘除实例
2017/11/14 Javascript
基于angular6.0实现的一个组件懒加载功能示例
2018/04/12 Javascript
Javascript的console['']常用输入方法汇总
2018/04/26 Javascript
js实现图片上传并预览功能
2018/08/06 Javascript
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
微信小程序表单验证WxValidate的使用
2019/11/27 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
Python中的多重装饰器
2015/04/11 Python
windows系统下Python环境的搭建(Aptana Studio)
2017/03/06 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
2018/07/16 Python
python中多个装饰器的执行顺序详解
2018/10/08 Python
自学python的建议和周期预算
2019/01/30 Python
使用Python调取任意数字资产钱包余额功能
2019/08/15 Python
复古斯堪的纳维亚儿童服装:Baby go Retro
2017/09/09 全球购物
Ootori在线按摩椅店:一家专业的按摩椅制造商
2019/04/10 全球购物
职工代表大会主持词
2014/04/01 职场文书
捐资助学倡议书
2014/04/15 职场文书
台风停课通知
2015/04/24 职场文书
个人工作决心书
2015/09/22 职场文书
信息技术课教学反思
2016/02/23 职场文书
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL
ant design vue的form表单取值方法
2022/06/01 Vue.js