Exemple #1
0
 /**
  * Parse the parameters in a string and return an array. Duplicates are
  * converted into indexed arrays.
  *
  *     // Parsed: array('a' => '1', 'b' => '2', 'c' => '3')
  *     $params = OAuth1::parse_params('a=1,b=2,c=3');
  *
  *     // Parsed: array('a' => array('1', '2'), 'c' => '3')
  *     $params = OAuth1::parse_params('a=1,a=2,c=3');
  *
  * @param   string  parameter string
  * @return  array
  */
 public static function parse_params($params)
 {
     // Split the parameters by &
     $params = explode('&', trim($params));
     // Create an array of parsed parameters
     $parsed = array();
     foreach ($params as $param) {
         // Split the parameter into name and value
         list($name, $value) = explode('=', $param, 2);
         // Decode the name and value
         $name = OAuth1::urldecode($name);
         $value = OAuth1::urldecode($value);
         if (isset($parsed[$name])) {
             if (!is_array($parsed[$name])) {
                 // Convert the parameter to an array
                 $parsed[$name] = array($parsed[$name]);
             }
             // Add a new duplicate parameter
             $parsed[$name][] = $value;
         } else {
             // Add a new parameter
             $parsed[$name] = $value;
         }
     }
     return $parsed;
 }