<MyRusakov.ru />

PHP и MySQL с Нуля до Гуру

PHP и MySQL с Нуля до Гуру

Данный курс - это более 20-ти часов видеоуроков по изучению PHP и MySQL. Ключевой момент курса - это создание движка для сайта с нуля. Каждая строчка комментируется. Практически для каждого урока имеются упражнения. Причём данные упражнения направлены не только на закрепление материала, но и на реализацию реальных задач, встающих перед Web-разработчиками при создании сайтов. После курса Вы сможете без проблем создавать движки для любых сайтов.

Также почти к каждому уроку идут упражнения для закрепления материала.

Просмотрев курс и выполнив упражнения, Вы сможете без проблем создавать функциональные движки для самых различных сайтов.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Определение языка пользователя на 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, что очень пригодится мультиязычным сайтам.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (7):

shamil shamil 17.09.2013 13:50:08

приятного вам отдыха. можно ли применить этот код на сайте ,с переключениями "en","ru"? Это для меня сложновато,но хотелось бы потестировать.там нужны какие-то изменения в коде,можно узнать подробнее?

Ответить

Admin Admin 17.09.2013 19:32:29

Это полученное значение нужно предавать в движок Вашего сайта, чтобы он знал на каком языке все шаблоны выводить.

Ответить

J-RaFF J-RaFF 04.02.2014 18:03:55

В вашем коде 2 ошибки. Поправьте

Ответить

EvgeTrofi EvgeTrofi 26.01.2014 12:51:04

Ошибочка в коде! В конце $langs[0] не работает! Это же ассоциативный массив и для сайта важно не значение первого элемента, а ключ! echo key($langs);

Ответить

alexandrdante alexandrdante 26.01.2014 13:50:37

А вы проверяли,работает или нет,о великий гуру?)

Ответить

EvgeTrofi EvgeTrofi 26.01.2014 14:09:28

Да. Я прям этот код у себя на денвере запустил и получил пустую страницу. Порылся в интернете - у некоторых тоже не работает обращение к нулевому элементу ассоциативного массива.

Ответить

alexandrdante alexandrdante 26.01.2014 14:14:26

может,перепутали чего?)или забыли? синтаксических ошибок точно нет.

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.