Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 根据用户位置加载不同的JS_Php_Javascript_Jquery_If Statement - Fatal编程技术网

Php 根据用户位置加载不同的JS

Php 根据用户位置加载不同的JS,php,javascript,jquery,if-statement,Php,Javascript,Jquery,If Statement,我正试图让我的网站加载基于用户语言的不同js文件。可能吗 我得到了这个javascript应用程序:test.js浏览器通常会发送一个指示用户首选语言的消息 在php中,您可以读取此头并使用它返回相应的文件 test.php <?php $locale = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']); list($language, $country) = explode('_', $locale); include

我正试图让我的网站加载基于用户语言的不同js文件。可能吗


我得到了这个javascript应用程序:test.js浏览器通常会发送一个指示用户首选语言的消息

在php中,您可以读取此头并使用它返回相应的文件

test.php

<?php
$locale = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']);
list($language, $country) = explode('_', $locale);
include 'test-'.$language'.js';
?>

但是,这不是最好的方法,因为您可能希望让用户能够覆盖该语言,而不使用浏览器的语言。此外,浏览器可能根本不发送语言,也可能指定您不支持的语言。此外,这样使用服务器端选择可能会损害您缓存文件的能力。此外,如果JavaScript文件中除了语言之外还有代码,则不希望在多个文件中重复代码


我建议您为此使用一个库,例如:

地理IP本地化>是的,这是可能的,但可能会欺骗。是的,这是可能的,但您为什么要这样做,而不是将本地化数据存储在单独的文件中?这是最古老和最好的方法。(不要按位置去,这不会告诉你用户的首选语言。)也许可以看看:询问用户的首选语言?然后做你需要做的改变,只是一种替代方法。最好不要想当然
<?php
$locale = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']);
list($language, $country) = explode('_', $locale);
include 'test-'.$language'.js';
?>