Проверка местоположения пользователя и затем применение определенного стиля?

StackOverflow https://stackoverflow.com/questions/617345

  •  03-07-2019
  •  | 
  •  

Вопрос

Как вы можете применить американский стиль для людей в США и британский стиль для людей в Великобритании?

Например, я хочу изменить флаг в соответствии с местоположением пользователя на моем сайте.

Это было полезно?

Решение

Сначала вам нужно найти IP-адрес вашего посетителя. Он будет в глобальной переменной $ _SERVER ['REMOTE_ADDR']. Затем вы можете сравнить этот IP с базой данных сопоставлений IP и страны, чтобы получить код страны для IP.

Этот метод не на 100% точен, но он "достаточно хорош" для большинства применений, и что более важно, это быстро. Возможно, вы захотите кэшировать код страны в файле cookie, чтобы избежать повторного поиска, если вы ожидаете большой трафик.

Одно из таких сопоставлений можно найти здесь: http://software77.net/cgi-bin/ip-country/ geo-ip.pl

PHP-класс, который берет IP и возвращает код страны, используя файл связанного пакета: http://www.phpclasses.org/browse/package/2363.html

Другие советы

Если вы действительно хотите указать местоположение пользователя, используйте ключевое слово геолокация .

Однако для вашей цели вы можете просто проверить $ _ SERVER [" ACCEPT_LANGUAGE "] . синтаксис немного сложен. К счастью, практически каждый клиент делает то, что должно было быть сделано сразу же, и заказывает предпочтительные места. Итак, рассчитайте stripos ($ _ SERVER [" ACCEPT_LANGUAGE "], $ lang) для всех локалей $ lang (например, " en-us "), которые вы поддерживаете, и выбираете самые низкие, отбрасывая локали, которые дают false.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top