Kullanıcının yerini kontrol etme ve daha sonra belirli bir stil uygulamak?

2 Cevap php

Nasıl İngiltere'de insanlar için ABD'de insanların ve bir İngiliz stili için bir ABD stili uygulayabilirsiniz?

Örneğin, benim sitede kullanıcının bulunduğu yere göre bir bayrak değiştirmek istiyorum.

2 Cevap

İlk olarak, ziyaretçinin IP adresini bulmak gerekiyor. Bu $ _SERVER ['REMOTE_ADDR'] global değişken olacaktır. Daha sonra IP için ülke kodu almak için ülke eşleşmelerinin IP bir veritabanı karşı bu IP bakabilirsiniz.

Bu yöntem% 100 doğru değil, ancak bir çok kullanım için "yeterince iyi" ve daha da önemlisi hızlıdır. Muhtemelen yüksek trafik bekliyorsanız, tekrarlanan aramalarını önlemek için bir tanımlama ülke kodunu önbelleğe isteyeceksiniz.

One such mapping can be found here: http://software77.net/cgi-bin/ip-country/geo-ip.pl

A PHP class that takes an IP and returns a country code using a bundled mapping file: http://www.phpclasses.org/browse/package/2363.html

Eğer gerçekten kullanıcının yerini istiyorsanız, anahtar kelime geolocation.

Amaç için, ancak, sadece kontrol edebilirsiniz $_SERVER["ACCEPT_LANGUAGE"]. syntax biraz karmaşık. Neyse ki, hemen hemen her müşteri hemen yapılmalıydı ne yaptığını ve tercih edilen yerleri emreder. Yani, stripos ($_SERVER["ACCEPT_LANGUAGE"], $lang) desteklemek ve yanlış verim yerellerde atarak, düşük alıyoruz ("en-us" gibi) tüm yerel $lang için hesaplar.