Verificar a localização do usuário e, em seguida, aplicar estilo específico?
-
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.
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.