Verificar a localização do usuário e, em seguida, aplicar estilo específico?

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

  •  03-07-2019
  •  | 
  •  

Pergunta

Como você pode aplicar um estilo dos EUA para as pessoas nos Estados Unidos e um estilo de Reino Unido para as pessoas no Reino Unido?

Por exemplo, eu quero mudar uma bandeira de acordo com a localização do usuário no meu site.

Foi útil?

Solução

Em primeiro lugar, você precisa encontrar o endereço IP do visitante. Será no $ _SERVER [ 'REMOTE_ADDR'] variável global. Você pode então olhar esta IP-se contra um banco de dados de IP para mapeamentos de campo para obter o código de país para o IP.

Este método não é 100% exato, mas é "suficientemente bom" para a maioria dos usos, e mais importante é que ele é rápido. Você provavelmente vai querer armazenar em cache o código do país em um cookie para evitar pesquisas repetidas, se você espera que o tráfego elevado.

Um tal mapeamento pode ser encontrada aqui: http://software77.net/cgi-bin/ip-country/ geo-ip.pl

A PHP classe que leva um IP e retorna um código de país usando um arquivo de mapeamento empacotados: http://www.phpclasses.org/browse/package/2363.html

Outras dicas

Se você quiser realmente a localização do utilizador, a palavra-chave é geolocalização .

Para o seu propósito, no entanto, você pode apenas verificar $_SERVER["ACCEPT_LANGUAGE"]. A sintaxe é um pouco complexo. Felizmente, praticamente todos os cliente faz o que deveria ter sido feito imediatamente e ordena os locais preferidos. Então, calcule stripos ($_SERVER["ACCEPT_LANGUAGE"], $lang) para todas as localidades $lang (como "en-us") você apoio e tomar o menor , localidades descartando que o rendimento falsa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top