Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: вывод страны пользователя из array
 
 автор: sav   (02.07.2006 в 21:36)   письмо автору
 
 

имеется:

$a=getenv("HTTP_ACCEPT_LANGUAGE");
$b=array
        (
"ad" => "Андорра",
"ae" => "Объединенные Арабские Эмираты",
"af" => "Афганистан",
"ag" => "Антигуа и Барбуда",
"ai" => "Ангилла",
.................
"zm" => "Замбия",
"zr" => "Демократическая республика Конго (Заир)",
"zw" => "Зимбабве");

надо по инфе от $HTTP_ACCEPT_LANGUAGE из массива $b напечатать страну пользователя... помогите пожалуйста

   
 
 автор: antf   (02.07.2006 в 21:55)   письмо автору
 
   для: sav   (02.07.2006 в 21:36)
 

Интересно, а у меня значение ппеременной $a:

ru-ru,ru;q=0.5

Почему столько ru и что такое q=0.5 ?

А если взять за основу такой формат, тогда страну можно вывести так:
<?
<?
  
$a=getenv("HTTP_ACCEPT_LANGUAGE");

  
$b=array
        (
             
"ad" => "Андорра",
             
"ae" => "Объединенные Арабские Эмираты",
             
"af" => "Афганистан",
             
"ag" => "Антигуа и Барбуда",
             
"ai" => "Ангилла",
             
"ru" => "Россия",
             
"zm" => "Замбия",
             
"zr" => "Демократическая республика Конго (Заир)",
             
"zw" => "Зимбабве");

  
preg_match("/[^-]+/i"$a$arr);
  
$lng $arr[0];

  print 
$b[$lng];



?>
?>

   
 
 автор: sav   (02.07.2006 в 22:46)   письмо автору
 
   для: antf   (02.07.2006 в 21:55)
 

так не получается нужно сделать так чтобы из переменной $a удалялись все символы кроме двух первых.. как это сделать??

   
 
 автор: antf   (02.07.2006 в 23:09)   письмо автору
 
   для: sav   (02.07.2006 в 22:46)
 

так не получается нужно сделать так чтобы из переменной $a удалялись все символы кроме двух первых.. как это сделать??

$lng = substr($a, 0, 2);

   
 
 автор: igorel   (07.07.2006 в 01:48)   письмо автору
 
   для: sav   (02.07.2006 в 21:36)
 

Люди объясните чем отличается определение страны пользователя по IP от того же по инфе из $HTTP_ACCEPT_LANGUAGE ?

   
 
 автор: pini-pini   (07.07.2006 в 09:39)   письмо автору
 
   для: igorel   (07.07.2006 в 01:48)
 

>Люди объясните чем отличается определение страны
>пользователя по IP от того же по инфе из
>$HTTP_ACCEPT_LANGUAGE ?

$HTTP_ACCEPT_LANGUAGE - это список языков, которые человек знает.

Например: я нахожусь в Америке, штате Флорида, в NASA
Это не означает что если $HTTP_ACCEPT_LANGUAGE == 'ru' то я нахожусь в России

   
 
 автор: Igorel   (07.07.2006 в 11:52)   письмо автору
 
   для: pini-pini   (07.07.2006 в 09:39)
 

Понятно, спасибо.

   
 
 автор: P@Sol   (07.07.2006 в 12:08)   письмо автору
 
   для: pini-pini   (07.07.2006 в 09:39)
 

>$HTTP_ACCEPT_LANGUAGE - это список языков, которые человек
>знает.
хорошо сказано:)

у меня _SERVER["HTTP_ACCEPT_LANGUAGE"] выводит значение просто "ru"

   
 
 автор: pini-pini   (07.07.2006 в 16:09)   письмо автору
 
   для: P@Sol   (07.07.2006 в 12:08)
 

>>$HTTP_ACCEPT_LANGUAGE - это список языков, которые
>человек
>>знает.
>хорошо сказано:)
>
>у меня _SERVER["HTTP_ACCEPT_LANGUAGE"] выводит значение
>просто "ru"

Этот заголовок формируется клиентом, значит его значение задает клиент.

Если вы указали только один язык в насторйках, то $_SERVER['HTTP_ACCEPT_LANGUAGE'] == '??';
Но если вы указали несколоко языков, то тогда $_SERVER['HTTP_ACCEPT_LANGUAGE'], будет примерно равно '??-??,??-??;q=?.?';

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования