Autor | Zpráva | ||
---|---|---|---|
adamico Profil |
Dobrý deň.
Chcem sa opýtať na spôsob, ako presmerovávať užívateľov stránok na stránky v ich jazyku. Ide o to, že zákazník predáva produkt do celého sveta a teda aj stránky sú v 4 rôznych jazykoch. Je možné užívateľa automaticky hodiť na stránku s jeho jazykovou mutáciou, aby som obchádzal ten klasický language choose ? (Teda Angličana na napr. en.example.sk, slováka na sk.exmaple.sk atd. ?) Robí sa to na základe IP ? Hosting u websupport. Ďakujem za rady. EDIT: Už som niečo také našiel, pripájam, keby to tiež niekto potreboval. <?php /** * Original code from svn://hostip.info/hostip/api/trunk. Optimized & enhanced by Quang Pham @ Saoma, 06.01.07. */ function isPrivateIP($ip) { list($a, $b, $c, $d) = sscanf($ip, "%d.%d.%d.%d"); return $a === null || $b === null || $c === null || $d === null || $a == 10 || $a == 239 || $a == 0 || $a == 127 || ($a == 172 && $b >= 16 && $b <= 31) || ($a == 192 && $b == 168); } function getIP() { $default = false; if (isset($_SERVER)) { $default_ip = $_SERVER["REMOTE_ADDR"]; $xforwarded_ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; $client_ip = $_SERVER["HTTP_CLIENT_IP"]; } else { $default_ip = getenv('REMOTE_ADDR'); $xforwarded_ip = getenv('HTTP_X_FORWARDED_FOR'); $client_ip = getenv('HTTP_CLIENT_IP'); } if ($xforwarded_ip != "") { $result = $xforwarded_ip; } else if ($client_ip != "") { $result = $client_ip; } else { $default = true; } if (!$default) { // additional check for private ip numbers $default = isPrivateIP($result); } if ($default) { $result = $default_ip; } return $result; } function showUSContent() { // show US content here, for ex. Yahoo! ads echo "US CONTENT"; } function showSKContent() { // show SK content here, for ex. Yahoo! ads echo "SK CONTENT"; } function showCZContent() { // show CZ content here, for ex. Yahoo! ads echo "CZ CONTENT"; } function showInternationalContent() { echo "international"; // show international content here, for ex. Google ads } function showGeoTargetContent() { // make a valid request to the hostip.info API $url = "http://api.hostip.info/country.php?ip=".getIP(); // fetch with curl $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $country = curl_exec($ch); curl_close ($ch); if ($country == "US") { showUSContent(); } elseif ($country == "SK") { showSKContent(); } elseif ($country == "CZ") { showCZContent(); } else { showInternationalContent(); } } showGeoTargetContent(); ?> |
||
Davex Profil |
#2 · Zasláno: 2. 9. 2012, 18:51:05
adamico:
„Robí sa to na základe IP ?“ Před otazníkem se nepíše mezera. Jazyková verze se obvykle servíruje podle preferovaného jazyka v prohlížeči $_SERVER['HTTP_ACCEPT_LANGUAGE'] . Můžeš vyzkoušet funkci z tématu Zjištění jazyku.
|
||
Časová prodleva: 13 let
|
0