Autor | Zpráva | ||
---|---|---|---|
srigi Profil |
#1 · Zasláno: 15. 12. 2008, 18:27:44 · Upravil/a: srigi
Pripravujem multijazykovu aplikaciu. Lokalizacia sa bude rozhodovat na zaklade URL, ktoru zada uzivatel do borwseru. Podla to sa adekvetne nastavi premenna $_SERVER['SERVER_NAME']. Ta obashuje cele domenove meno zadanej URL (napr. www.example.sk pri navsteve slovenskej domeny, www.example.cz pri navsteve ceskej).
Potrebujem z toho stringu spolahlivo vyextrahovat TLD. Momentalne pouzivam tento paskvil, ale asi to nebude moc chytre substr($_SERVER['SERVER_NAME'], strrpos($_SERVER['SERVER_NAME'], '.') + 1, 2); Mate navrhy ako to spravit flexibilnejsie? |
||
ixiik Profil |
#2 · Zasláno: 15. 12. 2008, 18:52:33
a nebylo by jednodušší detekovat a porovnávat celý server name?
if ($_SERVER['SERVER_NAME']) if ($_SERVER['SERVER_NAME'] == "www.example.cz") /*pokračuj v češtině*/ elseif ($_SERVER['SERVER_NAME'] == "www.example.sk") /*pokračuj slovensky*/ |
||
bohyn Profil |
#3 · Zasláno: 15. 12. 2008, 19:01:59
srigi
Neoc flexibilnejsiho tezko, jen bych odstranil to omezeni na 2 znaky u substr() pokud bys pridaval treba anglicou verzi. |
||
Nox Profil |
#4 · Zasláno: 15. 12. 2008, 19:05:54
Problém vidím v odlišení tld a domén 3.+ řádu, jinak by se dalo brát vše, co je za první tečkou (kromě www .),
takhle bych to alespoň upgradoval, že se vezme vše od poslední tečky (čili také substr, ale upgradovat o strrpos) Těmi problémovými tld jsem myslel třeba .co.uk atd. |
||
bohyn Profil |
#5 · Zasláno: 15. 12. 2008, 19:11:23
Nox
strrpos() uz tam ma |
||
srigi Profil |
#6 · Zasláno: 15. 12. 2008, 19:21:08
Asi to necham ako to je, len odstranim to obmedzenie na 2 znaky.
ad ixiik >> potrebujem ziskat dvojznakovy identifikator toho na aku verziu navstevnik zavital. Myslim si, ze aj tak nema cenu to pytvat, zakaznik pobezi max. na CZ a SK domene, pripadne dalsie jazyky uz budu v ramci tychto domen. |
||
ixiik Profil |
#7 · Zasláno: 15. 12. 2008, 19:28:18
if ($_SERVER['SERVER_NAME'] == "www.example.cz") $tld="cz" elseif ($_SERVER['SERVER_NAME'] == "www.example.sk") $tld="sk" ale to je mimoň.. pokud chceš detekovat přímo tld. |
||
bohyn Profil |
ixiik
A co kdyz ma dalsi domeny n-teho radu, popripade jen domenu 2. radu example.cz? Chtel to zjednodusit... |
||
Chamurappi Profil |
#9 · Zasláno: 15. 12. 2008, 19:35:47 · Upravil/a: Chamurappi
Reaguji na srigiho:
Kdysi dávno jsem se tu dozvěděl, že za TLD může být ještě tečka a že s ní některé weby fungují stejně jako bez ní. |
||
bohyn Profil |
Chamurappi
Mas pravdu funguje to. Promena $_SERVER['SERVER_NAME'] se ale nemeni. Meni se $_SERVER['HTTP_HOST'], ale na tom v tomto pripade nezalezi. |
||
TFSi Profil |
#11 · Zasláno: 15. 12. 2008, 19:41:01 · Upravil/a: TFSi
|
||
Časová prodleva: 15 let
|
0