src/ParseQualityHeaders.php
public function parseRawLineOfQualityHeaders(?string $headers) : ?array
    {
        $r = null;

        if ($headers !== null && $headers !== "") {
            // Separa os valores do header em seus componentes fundamentais
            $splitedHeader = explode(",", $headers);
            $r = $this->parseArrayOfQualityHeaders($splitedHeader);
        }

        return $r;
    }
public function parseRawLineOfQualityHeaders(?string $headers) : ?array
    {
        $r = null;

        if ($headers !== null && $headers !== "") {
            // Separa os valores do header em seus componentes fundamentais
            $splitedHeader = explode(",", $headers);
            $r = $this->parseArrayOfQualityHeaders($splitedHeader);
        }

        return $r;
    }
Trata os valores brutos de headers marcados com parametros "quality" que
identificam a preferência de algum tipo de conteúdo ou comportamento
sobre outro.

Retorna um array ordenado dos dados encontrados em ordem de preferência.
Valores em igual nível de preferência serão retornados alfabeticamente.

<pre>
$headers = "text/html,application/xhtml+xml,application/xml;q=0.9,* /*;q=0.8";

$return = [
// string   "value"     Valor real.
// float    "quality"   Nível da "qualidade" atribuido.
["value" => "text/html", "quality" => 1],
["value" => "application/xhtml+xml", "quality" => 1],
["value" => "application/xml", "quality" => 0.9],
["value" => "* /*", "quality" => 0.8]
];
</pre>

@param       ?string $headers
Versão bruta do header.

@return      ?array
O objeto de retorno é um array de arrays associativos
conforme exemplificado acima.