PHP检测用户语言的方法

yipeiwu_com6年前PHP代码库

本文实例讲述了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 strcmp使用说明

以区分大小写的方式比较两个字符串 Strcmp()函数对两个字符串进行二进制安全的比较,并区分大小写。其形式为: int strcmp ( string str1 , string st...

Zend Framework上传文件重命名的实现方法

本文实例讲述了Zend Framework上传文件重命名的实现方法。分享给大家供大家参考,具体如下: 1. Zend Framework文件上传重命名 //实例化文件上专类 $fNa...

php数组键值用法实例分析

本文实例讲述了php数组键值用法。分享给大家供大家参考。具体分析如下: 先看一个数组: <?php $switching = array( 10, // key =...

PHP7扩展开发教程之Hello World实现方法示例

本文实例讲述了PHP7扩展开发教程之Hello World实现方法。分享给大家供大家参考,具体如下: 一、下载PHP源代码 要开发PHP扩展,需要先下载PHP的源代码,一方面是因为我们的...

PHP动态生成指定大小随机图片的方法

本文实例讲述了PHP动态生成指定大小随机图片的方法。分享给大家供大家参考,具体如下: <?php $image_width = 100; $image_height =...