Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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
如果用户来自特定位置,则隐藏javascript_Javascript_Php - Fatal编程技术网

如果用户来自特定位置,则隐藏javascript

如果用户来自特定位置,则隐藏javascript,javascript,php,Javascript,Php,我希望一个javascript文件()被隐藏,如果一个用户说他来自中国 我该怎么做呢?你可以尝试使用代理,但考虑到你可以通过在其他地方使用代理(如美国被黑客攻击的机器)或通过欺骗请求,使其看起来像来自给定位置,最终可能对你没有多大好处。我是中国人,我保留所有抗议的权利。:) 实际上你有几个选择,你可以在前端或后端做 前端解决方案 使用HTML5地理定位确定当前用户的经纬度,并检查其是否在中国境内(不要忘记包含台湾)。缺点是只支持现代浏览器,您可能应该设置PlanB //jQuery, ip-ap

我希望一个javascript文件(
)被隐藏,如果一个用户说他来自中国


我该怎么做呢?

你可以尝试使用代理,但考虑到你可以通过在其他地方使用代理(如美国被黑客攻击的机器)或通过欺骗请求,使其看起来像来自给定位置,最终可能对你没有多大好处。

我是中国人,我保留所有抗议的权利。:)

实际上你有几个选择,你可以在前端或后端做

前端解决方案

使用
HTML5地理定位
确定当前用户的经纬度,并检查其是否在中国境内(不要忘记包含台湾)。缺点是只支持现代浏览器,您可能应该设置PlanB

//jQuery, ip-api is a RESTful service, do it in front-end
$.getJSON('http://ip-api.com/json/?callback=?', function(response){
    alert(response.country);
    if(response.country === "China"){
        $.getScript("script_for_Chinese.js");
    }
});
后端解决方案

  • 检查用户IP,看看它是否来自中国(有一堆
    IP到位置
    RESTful服务)
  • 如果
    Accept Language
    部分包含类似
    zh CN
    zh TW
    的字符串,请检查HTTP头。这也可能伤害到在其他国家使用中文的人
  • 例如,我不建议您使用前端解决方案或
    IP-to-location
    后端解决方案。唯一可行的方法是基于http头

    //PHP, if the client accept Chinese, assume he is from China
    if(preg_match('/(zh-CN|zh-TW|zh)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'])){
        echo '<script src="script_for_Chinese.js" type="text/javascript"></script>';
    }
    
    //PHP,如果客户接受中文,则假设他来自中国
    if(preg_match('/(zh-CN | zh-TW | zh)/i',$_服务器['HTTP_-ACCEPT_-LANGUAGE'])){
    回声';
    }
    
    这是种族歧视,互联网上是不允许的。哈哈,笑了我一笑,但我现在真的需要解决这个问题:)有什么帮助吗?安装一些标准的geoip数据库?(maxmind很常见),只是不输出它?你需要在你的服务器上这样做。有geoIP服务可以猜测用户来自哪里,从那里开始,然后创建某种PHP代码,如果用户不是来自中国,则只包含该文件。你能给我一个更具体的代码吗,我是这个领域的noob,我不知道如何整合它。@Joel我添加了一个例子,感谢您的帮助,但它需要一个IP,因为没有那么多人提供正确的语言信息…@Joel如果您坚持使用IP解决方案,在前端使用它可能会更好,考虑到这一点,差别不大,您不想为服务器添加额外的负载。但是对于特定的脚本加载,会有可感知的延迟。我更新了这个例子。嗨,非常感谢你的时间,你能提醒或回应一些东西吗,这样我就可以看到脚本工作了?我的意思是,不要为中国嵌入脚本,试着回应这个国家