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发送有附件的电子邮件-(PHPMailer使用的实例分析)
Apr 26 PHP
PHP大批量插入数据库的3种方法和速度对比
Jul 08 PHP
PDO防注入原理分析以及使用PDO的注意事项总结
Oct 23 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
Jan 07 PHP
PHP中的密码加密的解决方案总结
Oct 26 PHP
PHP中关键字interface和implements详解
Jun 14 PHP
yii2 commands模式以及配置crontab定时任务的方法
Aug 19 PHP
ThinkPHP框架实现定时执行任务的两种方法分析
Sep 04 PHP
php curl操作API接口类完整示例
May 21 PHP
tp5修改(实现即点即改)
Oct 18 PHP
php7 list()、session及其他模块的修改实例分析
May 25 PHP
PHP命令行与定时任务
Apr 01 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+JS无限级可伸缩菜单详解(简单易懂)
2007/01/02 PHP
腾讯QQ php程序员面试题目整理
2010/06/08 PHP
彻底删除thinkphp3.1案例blog标签的方法
2014/12/05 PHP
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
jQuery中wrapInner()方法用法实例
2015/01/16 Javascript
理解javascript中try...catch...finally
2015/12/25 Javascript
JS实现列表的响应式排版(推荐)
2016/09/01 Javascript
ES6入门教程之let和const命令详解
2017/05/17 Javascript
简单的Vue SSR的示例代码
2018/01/12 Javascript
解决webpack+Vue引入iView找不到字体文件的问题
2018/09/28 Javascript
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
在NPM发布自己造的轮子的方法步骤
2019/03/09 Javascript
vue自定义指令用法经典实例小结
2019/03/16 Javascript
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
Node.js实现一个HTTP服务器的方法示例
2019/05/13 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
Angular value与ngValue区别详解
2019/11/27 Javascript
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
在DigitalOcean的服务器上部署flaskblog应用
2015/12/19 Python
Python通过OpenCV的findContours获取轮廓并切割实例
2018/01/05 Python
Python下应用opencv 实现人脸检测功能
2019/10/24 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
python实现提取COCO,VOC数据集中特定的类
2020/03/10 Python
python能自学吗
2020/06/18 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
2020/12/03 Python
宝塔面板出现“open_basedir restriction in effect. ”的解决方法
2021/03/14 PHP
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
Html5实现单张、多张图片上传功能
2019/04/28 HTML / CSS
香港彩色隐形眼镜在线商店:Stunninglens(全球免费送货)
2019/05/10 全球购物
客服服务心得体会
2013/12/30 职场文书
cf收人广告词大全
2014/03/14 职场文书
关于Mybatis中SQL节点的深入解析
2022/03/19 Java/Android
“鬼灭之刃”热度不减,其成功背后的原因是什么?
2022/03/22 日漫