[ Index ]

PHP Cross Reference of WordPress

title

Body

[close]

/wp-includes/Requests/Response/ -> Headers.php (source)

   1  <?php
   2  /**
   3   * Case-insensitive dictionary, suitable for HTTP headers
   4   *
   5   * @package Requests
   6   */
   7  
   8  /**
   9   * Case-insensitive dictionary, suitable for HTTP headers
  10   *
  11   * @package Requests
  12   */
  13  class Requests_Response_Headers extends Requests_Utility_CaseInsensitiveDictionary {
  14      /**
  15       * Get the given header
  16       *
  17       * Unlike {@see self::getValues()}, this returns a string. If there are
  18       * multiple values, it concatenates them with a comma as per RFC2616.
  19       *
  20       * Avoid using this where commas may be used unquoted in values, such as
  21       * Set-Cookie headers.
  22       *
  23       * @param string $key
  24       * @return string|null Header value
  25       */
  26  	public function offsetGet($key) {
  27          $key = strtolower($key);
  28          if (!isset($this->data[$key])) {
  29              return null;
  30          }
  31  
  32          return $this->flatten($this->data[$key]);
  33      }
  34  
  35      /**
  36       * Set the given item
  37       *
  38       * @throws Requests_Exception On attempting to use dictionary as list (`invalidset`)
  39       *
  40       * @param string $key Item name
  41       * @param string $value Item value
  42       */
  43  	public function offsetSet($key, $value) {
  44          if ($key === null) {
  45              throw new Requests_Exception('Object is a dictionary, not a list', 'invalidset');
  46          }
  47  
  48          $key = strtolower($key);
  49  
  50          if (!isset($this->data[$key])) {
  51              $this->data[$key] = array();
  52          }
  53  
  54          $this->data[$key][] = $value;
  55      }
  56  
  57      /**
  58       * Get all values for a given header
  59       *
  60       * @param string $key
  61       * @return array|null Header values
  62       */
  63  	public function getValues($key) {
  64          $key = strtolower($key);
  65          if (!isset($this->data[$key])) {
  66              return null;
  67          }
  68  
  69          return $this->data[$key];
  70      }
  71  
  72      /**
  73       * Flattens a value into a string
  74       *
  75       * Converts an array into a string by imploding values with a comma, as per
  76       * RFC2616's rules for folding headers.
  77       *
  78       * @param string|array $value Value to flatten
  79       * @return string Flattened value
  80       */
  81  	public function flatten($value) {
  82          if (is_array($value)) {
  83              $value = implode(',', $value);
  84          }
  85  
  86          return $value;
  87      }
  88  
  89      /**
  90       * Get an iterator for the data
  91       *
  92       * Converts the internal
  93       * @return ArrayIterator
  94       */
  95  	public function getIterator() {
  96          return new Requests_Utility_FilteredIterator($this->data, array($this, 'flatten'));
  97      }
  98  }


Generated: Thu Dec 15 01:00:02 2022 Cross-referenced by PHPXref 0.7.1