Проверка языка браузера PHP?

Ближайшей будет переменная окружения %userprofile%, которая содержит путь к каталогу текущего пользователя: C:\Users\Somebody.

9
задан Léo Léopold Hertz 준영 6 March 2009 в 20:26
поделиться

3 ответа

Вероятно, просто проблема чувствительности к регистру; eregi ('en-us'') или preg_match ('/en-us/i ') должны были взять его.

Однако просто поиск 'en-us'' в заголовке может понимать его превратно иногда, в особенности когда и американские и британские языки перечислены. “Принимать-язык” является на самом деле вполне сложным заголовком, для которого действительно Вы хотели бы надлежащий синтаксический анализатор.

Если у Вас есть PECL, целое задание уже сделано для Вас: http://www.php.net/manual/en/function.http-negotiate-language.php

Я не знаю, почему другие ответы идут для заголовка Агента пользователя; это является совершенно поддельным. Агент пользователя не получает мандат содержать значение языка в каком-то конкретном месте, и для некоторых браузеров (например, Opera, и некоторый незначительный браузер, который я никогда не слышал о названном 'Internet Explorer') он нисколько не будет. Где это действительно содержит язык, это будет языка, сборка браузера была установлена в, не предпочтительный язык пользователя, который является тем, на что необходимо смотреть. (Эта установка примет значение по умолчанию на язык сборки, но может быть настроена пользователем от предпочтений UI.)

8
ответ дан 4 December 2019 в 14:31
поделиться

Попробуйте это:

<?
if(preg_match('/en-us/i', $_SERVER['HTTP_USER_AGENT']))
    include('http://page.com/us.txt');
else
    include('http://page.com/uk.txt');
?>
3
ответ дан 4 December 2019 в 14:31
поделиться

Вероятно, более надежный способ сделать это состоит в том, чтобы выполнить regex на $_SERVER['HTTP_USER_AGENT'] строка.

<?php
  if(preg_match('/en-US/', $_SERVER['HTTP_USER_AGENT']))
    include('http://page.com/us.txt');
  else
    include('http://page.com/uk.txt');
?>

Вы, как гарантируют, не получите допустимую и полезную строку агента пользователя, поэтому удостоверьтесь, что еще оператор содержит разумную альтернативу.

2
ответ дан 4 December 2019 в 14:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: