code: private static function parseQvalue($qvalue)
      {
          $matched = array();
          if (preg_match("/\\Aq\\s*=\\s*([0-9\\.]+)\\z/", $qvalue, $matched)) {
              $val = (float) $matched[1];
              return (0.0 < $val && $val <= 1.0) ? $val : 1;
          }
          return 1;
      }
docs: qvalue 形式の文字列 ("q=0.8" など) から小数部分を解析し, float として返します.
  
  @param  string $qvalue "q=0.9" のような形式の文字列
  @return float  qvalue の小数値. もしも不正な場合は 1.0