Изменить изображение веб-баннера в зависимости от страны посетителя

У меня небольшой веб-сайт (с использованием HTML, PHP и MySQL), и я хотел бы отобразить определенное изображение баннера в соответствии со страной посетителя. У каждой страны свой образ баннера.

Я искал в Google решения и нашел довольно много API (таких как HostIP), которые позволяют вернуть страну на основе IP-адреса. Это хорошо, но я не мог найти, как реализовать это для моей цели, чтобы переключить изображение в зависимости от страны …

У меня нет знаний разработчика. Может кто-нибудь мне помочь?

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
$response=@file_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, это правильное решение для переключения изображения в зависимости от страны?

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
}
}
0

По вопросам рекламы [email protected]