> > I think padding should be optional (on by default to keep BC) > > Of course in user land, simple to write > > $enc = trim(base64_encode('foo'), '='); > > This proposal allow to simply use > > $enc = base64_encode('foo', PHP_BASE64_NO_PADDING); > > Please add PHP_BASE64_URL flag also. BASE64 URL encoding (URL safe Base64 encoding) is used everywhere. i.e. str_replace(['+','/','='], ['-','_',''], base64_encode($str);
https://base64.guru/standards/base64url Decoding should be extended. i.e. base64_decode($encoded, PHP_BASE64_URL) Adding PHP_BASE64_STRICT flag may be reasonable, that requires specific encoding strictly for decoding. Regards, -- Yasuo Ohgaki yohg...@ohgaki.net > And also expose it for extension as > > PHPAPI extern zend_string *php_base64_encode_ex > (const unsigned char *, size_t, zend_long flags); > > > Use case: for ARGON2 password hashing > see https://github.com/php/php-src/pull/13635 > > It may seems ugly to add and remove th padding char > > Is a RFC needed for such a minor feature ? > > > Remi >