// +------------------------------------------------------------------------+
// | base64url encode |
// +------------------------------------------------------------------------+
function base64url_encode($string) {
// http://www.ietf.org/rfc/rfc4648.txt
return rtrim(strtr(base64_encode($string), '+/', '-_'), '=');
}
// +------------------------------------------------------------------------+
// | base64url decode |
// +------------------------------------------------------------------------+
function base64url_decode($string) {
// Thanks gutzmer at usa dot net
// http://php.net/manual/en/function.base64-encode.php#103849
return base64_decode(str_pad(strtr($string, '-_', '+/'), strlen($string) % 4, '=', STR_PAD_RIGHT));
}