phlib/base_convert

base_convert function with support for large arbitrary number

2.0.0 2021-11-28 09:04 UTC

This package is auto-updated.

Last update: 2024-10-31 00:22:04 UTC


README

Code Checks Codecov Latest Stable Version Total Downloads Licence

Improvement to php base_convert function with support for large arbitrary number

Install

Via Composer

$ composer require phlib/base_convert

Usage

Trying in php fails

// convert big number from base 10 to 36
$largeNumber = '111222333444555666777888999000';
$base36 = base_convert($largeNumber, 10, 36); // notice no error from php on the failure to convert
var_dump($base36);

// fails to convert back
var_dump($largeNumber == base_convert($base36, 36, 10));

Replace with phlib\base_convert and now it works

<?php
require_once 'vendor/autoload.php';

use function Phlib\base_convert;

// convert big number from base 10 to 36
$largeNumber = '111222333444555666777888999000';
$base36 = base_convert($largeNumber, 10, 36);
var_dump($base36);

// succesfully converts back
var_dump($largeNumber == base_convert($base36, 36, 10));

Making it clearer you're using a different function

require_once 'vendor/autoload.php';

// convert big number from base 10 to 36
$largeNumber = '111222333444555666777888999000';
$base36 = Phlib\base_convert($largeNumber, 10, 36);
var_dump($base36);

// succesfully converts back
var_dump($largeNumber == Phlib\base_convert($base36, 36, 10));

License

This package is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program. If not, see http://www.gnu.org/licenses/.