php是运行在浏览器上的语言,在PHP中检测浏览器语言

我使用以下PHP脚本作为网站索引。

该脚本应包括一个特定页面,具体取决于浏览器的语言(自动检测到)。

该脚本无法在所有浏览器上正常运行,因此它始终包含index_en.php任何检测到的语言(问题的原因很可能是未考虑某些Accept-

Language标头的问题)。

您能否建议我一个更强大的解决方案?

// Open session var

session_start();

// views: 1 = first visit; >1 = second visit

// Detect language from user agent browser

function lixlpixel_get_env_var($Var)

{

if(empty($GLOBALS[$Var]))

{

$GLOBALS[$Var]=(!empty($GLOBALS['_SERVER'][$Var]))?

$GLOBALS['_SERVER'][$Var] : (!empty($GLOBALS['HTTP_SERVER_VARS'][$Var])) ? $GLOBALS['HTTP_SERVER_VARS'][$Var]:'';

}

}

function lixlpixel_detect_lang()

{

// Detect HTTP_ACCEPT_LANGUAGE & HTTP_USER_AGENT.

lixlpixel_get_env_var('HTTP_ACCEPT_LANGUAGE');

lixlpixel_get_env_var('HTTP_USER_AGENT');

$_AL=strtolower($GLOBALS['HTTP_ACCEPT_LANGUAGE']);

$_UA=strtolower($GLOBALS['HTTP_USER_AGENT']);

// Try to detect Primary language if several languages are accepted.

foreach($GLOBALS['_LANG'] as $K)

{

if(strpos($_AL, $K)===0)

return $K;

}

// Try to detect any language if not yet detected.

foreach($GLOBALS['_LANG'] as $K)

{

if(strpos($_AL, $K)!==false)

return $K;

}

foreach($GLOBALS['_LANG'] as $K)

{

//if(preg_match("/[[( ]{$K}[;,_-)]/",$_UA)) // matching other letters (create an error for seo spyder)

return $K;

}

// Return default language if language is not yet detected.

return $GLOBALS['_DLANG'];

}

// Define default language.

$GLOBALS['_DLANG']='en';

// Define all available languages.

// WARNING: uncomment all available languages

$GLOBALS['_LANG'] = array(

'af', // afrikaans.

'ar', // arabic.

'bg', // bulgarian.

'ca', // catalan.

'cs', // czech.

'da', // danish.

'de', // german.

'el', // greek.

'en', // english.

'es', // spanish.

'et', // estonian.

'fi', // finnish.

'fr', // french.

'gl', // galician.

'he', // hebrew.

'hi', // hindi.

'hr', // croatian.

'hu', // hungarian.

'id', // indonesian.

'it', // italian.

'ja', // japanese.

'ko', // korean.

'ka', // georgian.

'lt', // lithuanian.

'lv', // latvian.

'ms', // malay.

'nl', // dutch.

'no', // norwegian.

'pl', // polish.

'pt', // portuguese.

'ro', // romanian.

'ru', // russian.

'sk', // slovak.

'sl', // slovenian.

'sq', // albanian.

'sr', // serbian.

'sv', // swedish.

'th', // thai.

'tr', // turkish.

'uk', // ukrainian.

'zh' // chinese.

);

// Redirect to the correct location.

// Example Implementation aff var lang to name file

/*

echo 'The Language detected is: '.lixlpixel_detect_lang(); // For Demonstration

echo "
";

*/

$lang_var = lixlpixel_detect_lang(); //insert lang var system in a new var for conditional statement

/*

echo "
";

echo $lang_var; // print var for trace

echo "
";

*/

// Insert the right page iacoording with the language in the browser

switch ($lang_var){

case "fr":

//echo "PAGE DE";

include("index_fr.php");//include check session DE

break;

case "it":

//echo "PAGE IT";

include("index_it.php");

break;

case "en":

//echo "PAGE EN";

include("index_en.php");

break;

default:

//echo "PAGE EN - Setting Default";

include("index_en.php");//include EN in all other cases of different lang detection

break;

}

?>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值