Intereting Posts

автоматический выбор языка и пересылка в файл

Я хотел бы, чтобы автоматический выбор языка в моем index.php. Когда пользователь из Колумбии, он перенаправляется в index_columbia.html и другие страны на index_english.html.

Как я могу сделать это с помощью PHP?

    Информация о языке, которая отправляется браузером, связана с зарезервированными переменными сервера. Ну, это решение основано не на местоположении посетителя, а на языковых настройках браузера, который кажется лучше. Если неважно, является ли посетитель из Колумбии или Франции, если он использует английский как язык, лучше показать ему английскую версию веб-сайта.

    Вы можете использовать $_SERVER['HTTP_ACCEPT_LANGUAGE'] следующим образом:

     <?php $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); switch ($lang){ case "fr": include("index_fr.php"); break; case "it": include("index_it.php"); break; case "en": include("index_en.php"); break; default: include("index_en.php"); break; } ?> в <?php $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); switch ($lang){ case "fr": include("index_fr.php"); break; case "it": include("index_it.php"); break; case "en": include("index_en.php"); break; default: include("index_en.php"); break; } ?> в <?php $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); switch ($lang){ case "fr": include("index_fr.php"); break; case "it": include("index_it.php"); break; case "en": include("index_en.php"); break; default: include("index_en.php"); break; } ?> в <?php $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); switch ($lang){ case "fr": include("index_fr.php"); break; case "it": include("index_it.php"); break; case "en": include("index_en.php"); break; default: include("index_en.php"); break; } ?> в <?php $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); switch ($lang){ case "fr": include("index_fr.php"); break; case "it": include("index_it.php"); break; case "en": include("index_en.php"); break; default: include("index_en.php"); break; } ?> 

    Вы можете проверить по IP-адресу (для этого есть веб-службы). например: http://freegeoip.net/

    Также вы можете использовать заголовок accept-language, отправленный браузером. http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4 Это можно получить из переменной $_SERVER .

    Вы можете использовать поиск по стране по IP-адресу.

    Класс, который делает это, можно найти по адресу http://www.phpandstuff.com/articles/geoip-country-lookup-with-php .

    Вы можете использовать мой код:

     $langs = array('en','fr','de'); $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); if (!in_array($lang, array_keys($langs))) $forward = 'index_'.$lang.'.html'; else $forward = 'index_en.html';