[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

/wp-includes/Requests/Utility/ -> CaseInsensitiveDictionary.php (source)

   1  <?php
   2  /**
   3   * Case-insensitive dictionary, suitable for HTTP headers
   4   *
   5   * @package Requests
   6   * @subpackage Utilities
   7   */
   8  
   9  /**
  10   * Case-insensitive dictionary, suitable for HTTP headers
  11   *
  12   * @package Requests
  13   * @subpackage Utilities
  14   */
  15  class Requests_Utility_CaseInsensitiveDictionary implements ArrayAccess, IteratorAggregate {
  16      /**
  17       * Actual item data
  18       *
  19       * @var array
  20       */
  21      protected $data = array();
  22  
  23      /**
  24       * Creates a case insensitive dictionary.
  25       *
  26       * @param array $data Dictionary/map to convert to case-insensitive
  27       */
  28  	public function __construct(array $data = array()) {
  29          foreach ($data as $key => $value) {
  30              $this->offsetSet($key, $value);
  31          }
  32      }
  33  
  34      /**
  35       * Check if the given item exists
  36       *
  37       * @param string $key Item key
  38       * @return boolean Does the item exist?
  39       */
  40  	public function offsetExists($key) {
  41          $key = strtolower($key);
  42          return isset($this->data[$key]);
  43      }
  44  
  45      /**
  46       * Get the value for the item
  47       *
  48       * @param string $key Item key
  49       * @return string|null Item value (null if offsetExists is false)
  50       */
  51  	public function offsetGet($key) {
  52          $key = strtolower($key);
  53          if (!isset($this->data[$key])) {
  54              return null;
  55          }
  56  
  57          return $this->data[$key];
  58      }
  59  
  60      /**
  61       * Set the given item
  62       *
  63       * @throws Requests_Exception On attempting to use dictionary as list (`invalidset`)
  64       *
  65       * @param string $key Item name
  66       * @param string $value Item value
  67       */
  68  	public function offsetSet($key, $value) {
  69          if ($key === null) {
  70              throw new Requests_Exception('Object is a dictionary, not a list', 'invalidset');
  71          }
  72  
  73          $key              = strtolower($key);
  74          $this->data[$key] = $value;
  75      }
  76  
  77      /**
  78       * Unset the given header
  79       *
  80       * @param string $key
  81       */
  82  	public function offsetUnset($key) {
  83          unset($this->data[strtolower($key)]);
  84      }
  85  
  86      /**
  87       * Get an iterator for the data
  88       *
  89       * @return ArrayIterator
  90       */
  91  	public function getIterator() {
  92          return new ArrayIterator($this->data);
  93      }
  94  
  95      /**
  96       * Get the headers as an array
  97       *
  98       * @return array Header data
  99       */
 100  	public function getAll() {
 101          return $this->data;
 102      }
 103  }


Generated : Thu Dec 15 08:20:01 2022 Cross-referenced by PHPXref