Example #1
0
 /**
  * method to create an instance from a string header value
  *
  * @param   string  $headerValue
  * @return  \stubbles\peer\http\AcceptHeader
  */
 public static function parse(string $headerValue) : self
 {
     $self = new self();
     foreach (explode(',', $headerValue) as $acceptable) {
         // seems to be impossible to parse acceptables with regular
         // expressions or even scanf(), so we do some string crunching here
         if (strstr($acceptable, 'q=') !== false) {
             list($acceptable, $priority) = explode('q=', trim($acceptable));
         } else {
             $priority = 1;
         }
         settype($priority, 'float');
         $acceptable = trim($acceptable);
         if (substr($acceptable, -1) === ';') {
             $acceptable = substr($acceptable, 0, -1);
         }
         $self->addAcceptable($acceptable, $priority);
     }
     return $self;
 }