示例#1
0
 /**
  * Sort the headers by quality property if the header matches the
  * [Kohana_HTTP_Header::$default_sort_filter] definition.
  *
  * #### Default sort values
  *
  *  - Accept
  *  - Accept-Chars
  *  - Accept-Encoding
  *  - Accept-Lang
  *
  * @param   array    $filter  Header fields to parse
  * @return  self
  */
 public function sort_values_by_quality(array $filter = array())
 {
     // If a filter argument is supplied
     if ($filter) {
         // Apply filter and store previous
         $previous_filter = HTTP_Header::$default_sort_filter;
         HTTP_Header::$default_sort_filter = $filter;
     }
     // Get a copy of this ArrayObject
     $values = $this->getArrayCopy();
     foreach ($values as $key => $value) {
         if (!is_array($value) or !in_array($key, HTTP_Header::$default_sort_filter)) {
             unset($values[$key]);
             continue;
         }
         // Sort them by comparison
         uasort($value, array($this, '_sort_by_comparison'));
         $values[$key] = $value;
     }
     // Return filter to previous state if required
     if ($filter) {
         HTTP_Header::$default_sort_filter = $previous_filter;
     }
     foreach ($values as $key => $value) {
         $this[$key] = $value;
     }
     // Return this
     return $this;
 }