2016-03-31 60 views
0

我有一个小网站(使用HTML,PHP和MySQL),并且希望根据访问者的国家/地区显示特定的横幅图像。每个国家都有不同的横幅图片。根据访问者的国家更改网页横幅图像

我已经搜索了Google的解决方案,并找到了相当多的API(如​​),允许根据IP地址返回国家。这很好,但我无法找到如何实现它的目的,使国家的图像开关...

我没有开发人员的知识。谁能帮我吗?

+0

嗯,我们可以但我们不会。我们在这里帮助不放弃免费代码。也许你应该尝试雇佣一名开发人员? – Daan

+0

_“我没有开发人员的知识”_--然后去雇人。 – CBroe

+0

你不应该制造大块的话,它会让人们回答你的问题。请注意,要创建一个新段落,您需要按[Enter]两次。一旦在编辑器中创建新行,但不会在每个人都可以看到您的帖子的实际页面上。 StackOverflow不是一个免费的编码服务,没有开发人员的知识,你将无处可去。无论如何,这个问题可能会被标记和删除/关闭,所以请去聘请开发人员为您编写代码。 – Druzion

回答

0

获取地理信息的IP

请求地理IP服务器(netip.de)检查,返回其中一个IP所在(主机,州,国家,镇)。

<?php 
$ip='94.219.40.96'; 
print_r(geoCheckIP($ip)); 
//Array ([domain] => dslb-094-219-040-096.pools.arcor-ip.net [country] => DE - Germany [state] => Hessen [town] => Erzhausen) 

//Get an array with geoip-infodata 
function geoCheckIP($ip) 
{ 
     //check, if the provided ip is valid 
     if(!filter_var($ip, FILTER_VALIDATE_IP)) 
     { 
       throw new InvalidArgumentException("IP is not valid"); 
     } 

     //contact ip-server 
     [email protected]_get_contents('http://www.netip.de/search?query='.$ip); 
     if (empty($response)) 
     { 
       throw new InvalidArgumentException("Error contacting Geo-IP-Server"); 
     } 

     //Array containing all regex-patterns necessary to extract ip-geoinfo from page 
     $patterns=array(); 
     $patterns["domain"] = '#Domain: (.*?)&nbsp;#i'; 
     $patterns["country"] = '#Country: (.*?)&nbsp;#i'; 
     $patterns["state"] = '#State/Region: (.*?)<br#i'; 
     $patterns["town"] = '#City: (.*?)<br#i'; 

     //Array where results will be stored 
     $ipInfo=array(); 

     //check response from ipserver for above patterns 
     foreach ($patterns as $key => $pattern) 
     { 
       //store the result in array 
       $ipInfo[$key] = preg_match($pattern,$response,$value) && !empty($value[1]) ? $value[1] : 'not found'; 
     } 

     return $ipInfo; 
} 

?> 
+0

谢谢Avinash。看起来很有趣。但我正在寻找根据这些信息显示正确图像的方法。我访问了netip.de,事实上,它返回了正确的国家。但是,如何根据该国家选择正确的形象......? – user3981693

+0

如果你从这个功能得到正确的国家名称,那么你可以在国名的基础上显示图像。示例为基于国家的图像创建一个表格。每当有用户访问我们的页面,然后找到该用户的国家,然后从基于国家的图像表中获取数据并显示该图像。希望你明白.... –

+0

我理解这个概念。我刚开始学习编码,所以在这一点上对我来说有点困难。必须找到捕获国家(名称或ISO代码)的方式,将其传递给查询,从基于国家的图像表中获取图像并显示该图像。 – user3981693

0

要完成Avinash的饮水器,这是基于国家切换图像的正确解决方案吗?

function switchImage($var) { 
    switch ($var) 
    { 
    case "United states": 
     $source = '/images/US.png'; 
     $class = 'myClass'; 
     $alt = 'myAlt'; 
     break; 
    case "United Kingdom": 
     $source = '/images/UK.png'; 
     $class = 'myClass'; 
     $alt = 'myAlt'; 
     break; 
    . 
    . 
    . 
    default: 
     return "Default"; //default case 
    } 
}