2016-03-31 14 views
0

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

Я искал Google решения и нашел довольно некоторые API (например, HostIP), которые позволяют вернуть страну на основе 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

Спасибо, Авинаш. Выглядит интересно. Но я ищу способ отображения правильного изображения на основе этой информации. Я посетил 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 
    } 
}