Locale::acceptFromHttp

locale_accept_from_http

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

Locale::acceptFromHttp -- locale_accept_from_httpTries to find out best available locale based on HTTP "Accept-Language" header

Description

Object oriented style

public static string Locale::acceptFromHttp ( string $header )

Procedural style

string locale_accept_from_http ( string $header )

Tries to find locale that can satisfy the language list that is requested by the HTTP "Accept-Language" header.

Parameters

header

The string containing the "Accept-Language" header according to format in RFC 2616.

Return Values

The corresponding locale identifier.

Examples

Example #1 locale_accept_from_http() example

<?php
$locale 
locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']);
echo 
$locale;
?>

Example #2 OO example

<?php
$locale 
Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
echo 
$locale;
?>

The above example will output:

en_US

See Also

  • locale_lookup() - Searches the language tag list for the best match to the language

Коментарии

Автор:
It's good to mention that if user browser will not send HTTP_ACCEPT_LANGUAGE, the output from:

 Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);

Will be null. 

So remember to set up a fail over scenario!
2012-10-14 21:50:33
http://php5.kiev.ua/manual/ru/locale.acceptfromhttp.html
If you're struggling to figure out how to use this function in a project that only supports certain languages, move along.

Unfortunately, this function doesn't let you specify languages supported by your project - and since the internal header parsing and negotiation logic isn't exposed in any other way, you'll most likely want to ditch this function and go for a custom implementation of the same thing:

https://github.com/willdurand/Negotiation
2017-11-22 16:44:16
http://php5.kiev.ua/manual/ru/locale.acceptfromhttp.html
Didn't see this being documented anywhere and the bug hasn't been addressed yet, so to save headache for otherS, this method does a little weird thing with these different locales:

php > echo locale_accept_from_http("zh_TW");
zh
php > echo locale_accept_from_http("zh_CN");
zh
2018-04-16 18:29:21
http://php5.kiev.ua/manual/ru/locale.acceptfromhttp.html
Автор:
Please note that this method can throw IntlException in some cases when the passed header string is invalid AND you have enabled exceptions.  For example:

<?php

ini_set
('intl.use_exceptions'1);

$header 'fr-FR,fr;q=0.9,fr;q=0.9;q=0.8,en-gb;q=0.8;q=0.7,en;q=0.6,en;q=0.7;q=0.5,*;q=0.5;q=0.4';
var_dump(locale_accept_from_http($header));

?>

Returns:

PHP Warning:  Uncaught IntlException: locale_accept_from_http: failed to find acceptable locale in ...
2022-01-28 13:26:45
http://php5.kiev.ua/manual/ru/locale.acceptfromhttp.html
Автор:
A nice way to detect humans. Bots usually dont have this HTTP_ACCEPT_LANGUAGE set.
2023-05-08 00:29:41
http://php5.kiev.ua/manual/ru/locale.acceptfromhttp.html

    Поддержать сайт на родительском проекте КГБ