Skip to content

Negotiation

Stefano Azzolini edited this page Feb 26, 2016 · 2 revisions

The Negotiation is a module for handling Content Negotiation.

See Reference : RFC 7231

Get best match between need and offerings


Note: You can use * as wildcards for matching a family of choices.

$need  = 'image/*;q=0.9,*/*;q=0.2';
$offer = 'text/html,svg/xml,image/svg+xml';
echo Negotiation::bestMatch($need,$offer);
image/svg+xml

Preferred and best match


Negotiation class automatically orders by priority based on q parameter.

$negotiatior = new Negotiation('en-US;q=0.3,it,en;q=0.4,es;q=0.9,de');

You can obtain the preferred response via the preferred method.

echo $negotiatior->preferred();
it

Or get the best match against another RFC7231 query

echo $negotiatior->best('es,en-US');
es

false will be returned if no match can be found.

Clone this wiki locally