Главная->Уроки по php->Определение языка пользователя на PHP
Определение языка пользователя на PHP
Определение языка пользователя на PHP Сайты, которые рассчитаны на множество стран мира, как правило, имеют несколько языков. Безусловно, на всех страницах сайта там можно переключиться с одного языка на другой. Однако, Вы, наверняка, замечали, что в большинстве случаев сайты каким-то образом определяют Ваш язык и устанавливают сразу для Вас наиболее подходяющий. Вот о том, как определяется язык пользователя на PHP, я и расскажу в данной статье. В основе лежит константа $_SERVER["HTTP_ACCEPT_LANGUAGE"], которая как раз и содержит сведения о предпочитаемых языках пользователя. Выглядит она примерно так: "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3". Здесь перечисляются языки и регионы, а также приоритет q. Чем больше q, тем больше пользователь предпочитает данный язык. Если q нет, значит, оно равно 1. Например, у ru-RU нет q, значит, оно равно 1, и данный язык наиболее подходящий. Чтобы определить язык пользователя на PHP, надо воспользоваться следующим кодом: <?php preg_match_all('/([a-z]{1,8}(?:-[a-z]{1,8})?)(?:;q=([0-9.]+))?/', strtolower($_SERVER["HTTP_ACCEPT_LANGUAGE"]), $matches); // Получаем массив $matches с соответствиями $langs = array_combine($matches[1], $matches[2]); // Создаём массив с ключами $matches[1] и значениями $matches[2] foreach ($langs as $n => $v) $langs[$n] = $v ? $v : 1; // Если нет q, то ставим значение 1 arsort($langs); // Сортируем по убыванию q $default_lang = key($langs); // Берём 1-й ключ первого (текущего) элемента (он же максимальный по q) echo $default_lang; // Выводим язык по умолчанию ?> Получив язык по умолчанию, мы можем сразу же установить его и на сайте, тем самым, выводя контент для пользователя на том языке, который он предпочитает. Таким образом определяется язык пользователя на PHP, что очень пригодится мультиязычным сайтам.