Verifica la posizione dell'utente e quindi applicare uno stile specifico?
-
03-07-2019 - |
Domanda
Come puoi applicare uno stile americano per le persone negli Stati Uniti e uno stile britannico per le persone nel Regno Unito?
Ad esempio, voglio cambiare un flag in base alla posizione dell'utente nel mio sito.
Soluzione
Innanzitutto, devi trovare l'indirizzo IP del tuo visitatore. Sarà nella variabile globale $ _SERVER ['REMOTE_ADDR']. È quindi possibile cercare questo IP in un database di mappature IP per paese per ottenere il codice paese per l'IP.
Questo metodo non è preciso al 100%, ma è "abbastanza buono" per la maggior parte degli usi e, soprattutto, è veloce. Probabilmente vorrai memorizzare nella cache il codice paese in un cookie per evitare ricerche ripetute, se prevedi un traffico elevato.
Una tale mappatura può essere trovata qui: http://software77.net/cgi-bin/ip-country/ geo-ip.pl
Una classe PHP che accetta un IP e restituisce un codice paese utilizzando un file di mapping in bundle: http://www.phpclasses.org/browse/package/2363.html
Altri suggerimenti
Se desideri davvero la posizione dell'utente, la parola chiave è geolocalizzazione .
Per il tuo scopo, tuttavia, puoi semplicemente selezionare $ _SERVER [" ACCEPT_LANGUAGE "]
. La sintassi è un po 'complessa. Fortunatamente, praticamente ogni cliente fa quello che avrebbe dovuto essere fatto immediatamente e ordina le posizioni preferite. Quindi, calcola stripos
($ _SERVER [" ACCEPT_LANGUAGE "], $ lang)
per tutte le versioni locali $ lang
(come " en-us ") supportate e prendete le versioni più basse, scartando quelle che producono false.