Сначала разберем заголовки в общий массив:
$headers = explode("\n", $headers);
foreach ($headers as $header) {
list($key, $value) = explode(': ', $header, 2);
$headers[$key] = $value;
}
Затем проанализируйте заголовок WWW-Authenticate
примерно так:
$params = array();
preg_match_all('/(\w+)="([^"]+)"/', $headers['WWW-Authenticate'], $matches, PREG_SET_ORDER);
foreach ($matches as $match) {
$params[$match[1]] = $match[2];
}