蛋白质/协商

处理内容协商的模块

1.0.3 2019-05-28 14:29 UTC

This package is auto-updated.

Last update: 2024-08-29 05:06:47 UTC


README

蛋白质 | 协商

处理内容协商的模块。

参考: RFC 7231

安装

composer require proteins/negotiation

通过

use Proteins\Negotiation;

获取需求和供应之间的最佳匹配

注意:您可以使用*作为通配符来匹配一组选择。

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

首选和最佳匹配

协商类会根据q参数自动按优先级排序。

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

您可以通过preferred方法获取首选响应。

echo $negotiatior->preferred();
it

或获取与另一个RFC7231查询的最佳匹配

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

如果没有找到匹配项,将返回false