本文整理汇总了PHP中XString::urlencode_rfc3986方法的典型用法代码示例。如果您正苦于以下问题:PHP XString::urlencode_rfc3986方法的具体用法?PHP XString::urlencode_rfc3986怎么用?PHP XString::urlencode_rfc3986使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XString
的用法示例。
在下文中一共展示了XString::urlencode_rfc3986方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: sign
protected function sign($url, $method, $params, $oauth_token_secret = null)
{
/*{{{*/
uksort($params, 'strcmp');
$pairs = array();
foreach ($params as $key => $value) {
$key = XString::urlencode_rfc3986($key);
if (is_array($value)) {
// If two or more parameters share the same name, they are sorted by their value
// Ref: Spec: 9.1.1 (1)
natsort($value);
foreach ($value as $duplicate_value) {
$pairs[] = $key . '=' . XString::urlencode_rfc3986($duplicate_value);
}
} else {
$pairs[] = $key . '=' . XString::urlencode_rfc3986($value);
}
}
$sign_parts = XString::urlencode_rfc3986(implode('&', $pairs));
$base_string = implode('&', array(strtoupper($method), XString::urlencode_rfc3986($url), $sign_parts));
$key_parts = array(XString::urlencode_rfc3986($this->appsecret), XString::urlencode_rfc3986($oauth_token_secret));
$key = implode('&', $key_parts);
return base64_encode(XString::hash_hmac('sha1', $base_string, $key, true));
}