spam

heytar

Registered
anonimen каза:
Така взимаш държавата:

http://php.net/manual/en/function.geoip-country-name-by-name.php

Така пренасочваш:

https://stackoverflow.com/a/768472

Сега вече двете си ги комбинираш както ти трябва.
Примерно

PHP:
if($country == "Bulgaria") header('Location: ./?lang=bg');
else header('Location: ./?lang=en');
и после -
https://www.facebook.com/photo.php?fbid=1889055881165850&set=gm.2093244047579348&type=3&permPage=1&ifg=1
 
E добре де, нито съм казвал, нито съм намеквал да изрежда if-чета едно след друго. Дадох кратък пример, колкото да илюстрира употребата на кода от двата линка.

Темата не е за принципи и правилно структуриране на кода, практики и т.н., а за 'Пренасочване по геолокация'. Или поне към момента такова е заглавието, такъв е и въпросът.
 
Или от User Agent (браузър) стринга да си извежда езика по подразбиране с който браузъра се логва и готово.


(Моят варянт е най-малко предпочитаният, защото е доста неточен, но има по-стари проекти базирани на него)
 
anonimen каза:
E добре де, нито съм казвал, нито съм намеквал да изрежда if-чета едно след друго. Дадох кратък пример, колкото да илюстрира употребата на кода от двата линка.

Темата не е за принципи и правилно структуриране на кода, практики и т.н., а за 'Пренасочване по геолокация'. Или поне към момента такова е заглавието, такъв е и въпросът.

Не казвам, че си казал. Кода го показва. Следователно, щом пита такъв въпрос е почти 100% сигурно, че ще нареди 200 ифа.
 
Revelation каза:
anonimen каза:
E добре де, нито съм казвал, нито съм намеквал да изрежда if-чета едно след друго. Дадох кратък пример, колкото да илюстрира употребата на кода от двата линка.

Темата не е за принципи и правилно структуриране на кода, практики и т.н., а за 'Пренасочване по геолокация'. Или поне към момента такова е заглавието, такъв е и въпросът.

Не казвам, че си казал. Кода го показва. Следователно, щом пита такъв въпрос е почти 100% сигурно, че ще нареди 200 ифа.

Реално погледнато всичко се свежда до 1 ред :D :lol: :lol:

PHP:
if($country == 'Russia') { .. }
 
Реално погледнато, ако човека има 10 езика на сайта, то ще има 10 if условия или 10 case; Аз не бих ползвал пълното име на държавите а само примерно BG, EN и др. Така или иначе трябва да се опишат някъде тези условия и при всяко какво да се прави. Виждал съм много приятни switch case рутери, които просто при въведен стринг ако имаш такъв превод на сайта го взима и визуализира. Културно решение за мен би било, да се взима стринга на държавата в стандартизираният двубуквен вид и от там подавайки стринга в метод или функция да се проверява има ли го няма ли го и да се взима решение на база въведен стринг. Имаш 5 езика описваш класовете, отговарящи за тях и ги викаш при определената от теб логика, в случаят по геолокация.
 

Back
Горе