php判断网站语言,PHP判断浏览器类型和浏览器语言?

用php语言来判断浏览器类型其实很简单。

因为浏览器在和服务器连接时候都会先发送一些包含自己信息的内容(浏览器类型、语言啦)。

这里我们主要分析的是_SERVER["HTTP_USER_AGENT"](浏览器类型)和_SERVER["HTTP_ACCEPT_LANGUAGE"](浏览器语言)。

我们所要做的就是把这些内容读出来,然后用strpos或者preg_match函数来对比就可以了。

判断浏览器类型:<?php

$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4); //只取前4位,这样只判断最优先的语言。如果取前5位,可能出现en,zh的情况,影响判断。

if (preg_match("/zh-c/i", $lang))

echo "简体中文";

else if (preg_match("/zh/i", $lang))

echo "繁體中文";

else if (preg_match("/en/i", $lang))

echo "English";

else if (preg_match("/fr/i", $lang))

echo "French";

else if (preg_match("/de/i", $lang))

echo "German";

else if (preg_match("/jp/i", $lang))

echo "Japanese";

else if (preg_match("/ko/i", $lang))

echo "Korean";

else if (preg_match("/es/i", $lang))

echo "Spanish";

else if (preg_match("/sv/i", $lang))

echo "Swedish";

else echo $_SERVER["HTTP_ACCEPT_LANGUAGE"];

?>

indow.navigator.systemLanguage    得到当前浏览器所使用的语系 IE5.5以上支持

返回值:

zh-cn Chinese(PRC)

zh-tw Chinese(Taiwan Region)

zh-hk Chinese(Hong Kong SAR, PRC)

zh-sg Chinese(Singapore)

en-us English(United States)

en      English

判断浏览器类型主要是靠分析_SERVER["HTTP_USER_AGENT"]的内容,而分析浏览器语言则是分析_SERVER["HTTP_ACCEPT_LANGUAGE"]。

例子:

var _OurplusLanguage = (navigator.systemLanguage?navigator.systemLanguage:navigator.language); //判断浏览器语言是中文还是英文

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*qs*=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;

}

$_SERVER['HTTP_ACCEPT_LANGUAGE']获取当前语言

Afrikaans (af)

Albanian (sq)

Basque (eu)

Bulgarian (bg)

Byelorussian (be)

Catalan (ca)

Chinese (zh)

Chinese/China (zh-cn)

Chinese/Taiwan (zh-tw)

Chinese/Hong Kong (zh-hk)

Chinese/singapore (zh-sg)

Croatian (hr)

Czech (cs)

Danish (da)

Dutch (nl)

Dutch/Belgium (nl-be)

English (en)

English/United Kingdom (en-gb)

English/United Satates (en-us)

English/Australian (en-au)

English/Canada (en-ca)

English/New Zealand (en-nz)

English/Ireland (en-ie)

English/South Africa (en-za)

English/Jamaica (en-jm)

English/Belize (en-bz)

English/Trinidad (en-tt)

Estonian (et)

Faeroese (fo)

Farsi (fa)

Finnish (fi)

French (fr)

French/Belgium (fr-be)

French/France (fr-fr)

French/Switzerland (fr-ch)

French/Canada (fr-ca)

French/Luxembourg (fr-lu)

Gaelic (gd)

Galician (gl)

German (de)

German/Austria (de-at)

German/Germany (de-de)

German/Switzerland (de-ch)

German/Luxembourg (de-lu)

German/Liechtenstein (de-li)

Greek (el)

Hindi (hi)

Hungarian (hu)

Icelandic (is)

Indonesian (id or in)

Irish (ga)

Italian (it)

Italian/ Switzerland (it-ch)

Japanese (ja)

Korean (ko)

Latvian (lv)

Lithuanian (lt)

Macedonian (mk)

Malaysian (ms)

Maltese (mt)

Norwegian (no)

Polish (pl)

Portuguese (pt)

Portuguese/Brazil (pt-br)

Rhaeto-Romanic (rm)

Romanian (ro)

Romanian/Moldavia (ro-mo)

Russian (ru)

Russian /Moldavia (ru-mo)

Scots Gaelic (gd)

Serbian (sr)

Slovack (sk)

Slovenian (sl)

Sorbian (sb)

Spanish (es or es-do)

Spanish/Argentina (es-ar)

Spanish/Colombia (es-co)

Spanish/Mexico (es-mx)

Spanish/Spain (es-es)

Spanish/Guatemala (es-gt)

Spanish/Costa Rica (es-cr)

Spanish/Panama (es-pa)

Spanish/Venezuela (es-ve)

Spanish/Peru (es-pe)

Spanish/Ecuador (es-ec)

Spanish/Chile (es-cl)

Spanish/Uruguay (es-uy)

Spanish/Paraguay (es-py)

Spanish/Bolivia (es-bo)

Spanish/El salvador (es-sv)

Spanish/Honduras (es-hn)

Spanish/Nicaragua (es-ni)

Spanish/Puerto Rico (es-pr)

Sutu (sx)

Swedish (sv)

Swedish/Findland (sv-fi)

Thai (ts)

Tswana (tn)

Turkish (tr)

Ukrainian (uk)

Urdu (ur)

Vietnamese (vi)

Xshosa (xh)

Yiddish (ji)

Zulu (zu)

//PHP如何识别系统语言或浏览器语言

function ylang(){

preg_match('/^([a-z-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);

$lang = $matches[1];

//print_r($lang);

switch ($lang) {

case 'zh-CN' :

$lan = 'cn';

break;

case 'zh-TW' :

$lan = 'cn';

default:

$lan = 'en';

break;

}

return $lan;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值