Autor Zpráva
srigi
Profil
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
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
srigi
Neoc flexibilnejsiho tezko, jen bych odstranil to omezeni na 2 znaky u substr() pokud bys pridaval treba anglicou verzi.
Nox
Profil
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
Nox
strrpos() uz tam ma
srigi
Profil
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
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
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
http://cz.php.net/function.parse-url ??

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0