artbit/base_convert

Base conversion utility that supports number bases from 2 to 64 (PHP's builtin base_convert supports number bases from 2 through 36)

v1.0 2016-05-12 12:40 UTC

This package is not auto-updated.

Last update: 2024-09-20 19:09:34 UTC


README

Build Status GitHub license GitHub stars awesomeness

PHP's built in base_convert function supports bases ranging from 2 to 36. This library expands that range to 2 to 64.

Usage

Convert a number 100 from decimal to hexadecimal (from base 10 to base 16):

echo math\base_convert(100, 10, 16); 
// echoes '64'

...and back:

echo math\base_convert(64, 16, 10); 
// echoes '100'

Custom alphabets

Instead of integer bases, you can pass in the alphabet string to use for conversion (since integer bases are converted to alphabet strings anyways, i.e. hexadecimal alphabet is simply "0123456789abcdef").

Here we convert from base 10 to alphabet 'customizable'

echo math\base_convert(1234567890, 10, 'customizable');
// echoes 'slmmmmcui'

Here we convert from alphabet 'customizable' to alphabet 'isogram'

echo math\base_convert('slmmmmcui', 'customizable', 'isogram');
// echoes 'rorsirrioig'

And from alphabet 'isogram' back to base 10

echo math\base_convert('rorsirrioig', 'isogram', 10);
// echoes '1234567890'

So both slmmmmcui and rorsirrioig, but also 1234567890 describe the same value, but in different alphabets.

NOTE: All alphabets must be isograms An isogram (also known as a "nonpattern word") is a logological term for a word or phrase without a repeating letter. Conveniently, the word isogram is an isogram as well.

License

MIT