Example #1
0
 function toURLEncoded()
 {
     // Generate an x-www-urlencoded string
     $args = array();
     foreach ($this->toPostArgs() as $k => $v) {
         $args[] = array($k, $v);
     }
     sort($args);
     return Auth_OpenID::httpBuildQuery($args);
 }
Example #2
0
function Services_Yadis_XRIAppendArgs($url, $args)
{
    // Append some arguments to an HTTP query.  Yes, this is just like
    // OpenID's appendArgs, but with special seasoning for XRI
    // queries.
    if (count($args) == 0) {
        return $url;
    }
    // Non-empty array; if it is an array of arrays, use multisort;
    // otherwise use sort.
    if (array_key_exists(0, $args) && is_array($args[0])) {
        // Do nothing here.
    } else {
        $keys = array_keys($args);
        sort($keys);
        $new_args = array();
        foreach ($keys as $key) {
            $new_args[] = array($key, $args[$key]);
        }
        $args = $new_args;
    }
    // According to XRI Resolution section "QXRI query parameters":
    //
    // "If the original QXRI had a null query component (only a
    //  leading question mark), or a query component consisting of
    //  only question marks, one additional leading question mark MUST
    //  be added when adding any XRI resolution parameters."
    if (strpos(rtrim($url, '?'), '?') !== false) {
        $sep = '&';
    } else {
        $sep = '?';
    }
    return $url . $sep . Auth_OpenID::httpBuildQuery($args);
}
Example #3
0
 /**
  * "Appends" query arguments onto a URL.  The URL may or may not
  * already have arguments (following a question mark).
  *
  * @access private
  * @param string $url A URL, which may or may not already have
  * arguments.
  * @param array $args Either an array key/value pairs or an array of
  * arrays, each of which holding two values: a key and a value,
  * sequentially.  If $args is an ordinary key/value array, the
  * parameters will be added to the URL in sorted alphabetical order;
  * if $args is an array of arrays, their order will be preserved.
  * @return string $url The original URL with the new parameters added.
  *
  */
 static function appendArgs($url, $args)
 {
     if (count($args) == 0) {
         return $url;
     }
     // Non-empty array; if it is an array of arrays, use
     // multisort; otherwise use sort.
     if (array_key_exists(0, $args) && is_array($args[0])) {
         // Do nothing here.
     } else {
         $keys = array_keys($args);
         sort($keys);
         $new_args = array();
         foreach ($keys as $key) {
             $new_args[] = array($key, $args[$key]);
         }
         $args = $new_args;
     }
     $sep = '?';
     if (strpos($url, '?') !== false) {
         $sep = '&';
     }
     return $url . $sep . Auth_OpenID::httpBuildQuery($args);
 }