<?php class Requests_Response_Headers extends Requests_Utility_CaseInsensitiveDictionary { public function offsetGet($key) { $key = strtolower($key); if (!isset($this->data[$key])) { return null; } return $this->flatten($this->data[$key]); } public function offsetSet($key, $value) { if ($key === null) { throw new Requests_Exception('Object is a dictionary, not a list', 'invalidset'); } $key = strtolower($key); if (!isset($this->data[$key])) { $this->data[$key] = array(); } $this->data[$key][] = $value; } public function getValues($key) { $key = strtolower($key); if (!isset($this->data[$key])) { return null; } return $this->data[$key]; } public function flatten($value) { if (is_array($value)) { $value = implode(',', $value); } return $value; } public function getIterator() { return new Requests_Utility_FilteredIterator($this->data, array($this, 'flatten')); } }