Как определить язык браузера в PHP?

Опубликовано: 1 Декабря, 2021

Мы можем определить язык запрашивающего браузера с помощью суперглобальной переменной PHP $_SERVER . Это суперглобальная переменная, которая содержит информацию о заголовках, путях и расположении скриптов . Это в основном ассоциативный массив в PHP, который имеет такие ключи, как SERVER_NAME, SERVER_ADDR, REQUEST_METHOD и т. Д.

Мы можем использовать HTTP_ACCEPT_LANGUAGE чтобы получить язык браузера.

Синтаксис:

 $ _SERVER ['HTTP_ACCEPT_LANGUAGE']

Мы можем увидеть такой вывод:

 en-US, en; q = 0,9, hi; q = 0,8, fr; q = 0,7

Пример 1:
Чтобы получить текущий язык браузера, мы можем использовать встроенную функцию PHP substr, чтобы получить первые две буквы строки, например:

<?php
  
   echo substr($_SERVER["HTTP_ACCEPT_LANGUAGE"], 0, 2);
  
?>

После запуска вышеуказанной программы вы увидите вывод на языке вашего текущего браузера -

 en

Вы можете проверить это, изменив язык вашего браузера. Если вы используете Chrome, вы можете перейти в chrome://settings/languages и выбрать другой язык.

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

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

<?php
$lang = substr ( $_SERVER [ 'HTTP_ACCEPT_LANGUAGE' ], 0, 2);
// Redirect browser
header( "Location: https://www.geeksforgeeks.org/ " . $lang . "/index.php" );
exit ;
?>

Вышеупомянутая программа будет перенаправлять на такие ссылки, как

 http://www.example.com/ ru /index.php