On 13-03-2024 17:06, Remi Collet wrote:
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);
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
Great addition! Only I would strongly prefer a boolean argument over a
flag. Especially now that we have named arguments, adding a bunch of
optional boolean arguments to the signature does not lead to unreadable
code anymore. In fact, I think it yields code that is easier to read.
Regards,
Dik