1. Go to this page and download the library: Download fatkulnurk/radix-converter library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
fatkulnurk / radix-converter example snippets
atkulnurk\RadixConverter\ConverterFactory;
use Fatkulnurk\RadixConverter\Enums\ConverterType;
// Create a converter
$converter = ConverterFactory::make(ConverterType::BASE62);
// Convert number to string
$encoded = $converter->encode(12345);
echo $encoded; // Output: "3d7"
// Convert string back to number
$decoded = $converter->decode($encoded);
echo $decoded; // Output: 12345
use Fatkulnurk\RadixConverter\CustomConverterRegistry;
CustomConverterRegistry::register('hex', new \Fatkulnurk\RadixConverter\Strategies\HexStrategy());
$converter = CustomConverterRegistry::get('hex');
$converter->encode(255); // "ff"
$converter->decode("ff"); // 255
$converter = ConverterFactory::make(ConverterType::BASE62);
// Your database ID
$databaseId = 154832;
// Convert to short code
$shortCode = $converter->encode($databaseId);
// Result: "Ehi"
// Create short URL
$shortUrl = "https://yoursite.com/u/" . $shortCode;
// Result: "https://yoursite.com/u/Ehi"
// Later, get the original ID back
$originalId = $converter->decode($shortCode);
// Result: 154832
// Base62 (most compact)
$base62 = ConverterFactory::make(ConverterType::BASE62);
echo $base62->encode(1000); // "g8"
// Uppercase only (easier to read)
$upper = ConverterFactory::make(ConverterType::ALPHA_NUMERIC_UPPER);
echo $upper->encode(1000); // "RS"
// Lowercase only (easier to type)
$lower = ConverterFactory::make(ConverterType::ALPHA_NUMERIC_LOWER);
echo $lower->encode(1000); // "rs"
// Letters only (no numbers)
$alpha = ConverterFactory::make(ConverterType::ALPHA_ONLY);
echo $alpha->encode(100); // "cU"
use Fatkulnurk\RadixConverter\Exceptions\ConverterException;
try {
$converter->encode(-5);
} catch (ConverterException $e) {
echo $e->getMessage(); // "Input number must be positive"
}
try {
$converter->decode('');
} catch (ConverterException $e) {
echo $e->getMessage(); // "Encoded value cannot be empty"
}
try {
$converter->decode('abc!@#');
} catch (ConverterException $e) {
echo $e->getMessage(); // "Invalid character found: !"
}
use Fatkulnurk\RadixConverter\CustomConverterRegistry;
// Register the hex converter
CustomConverterRegistry::register('hex', new \Fatkulnurk\RadixConverter\Strategies\HexStrategy());
// Use it
$converter = CustomConverterRegistry::get('hex');
echo $converter->encode(255); // "ff"
echo $converter->decode('ff'); // 255
use Fatkulnurk\RadixConverter\Strategies\AbstractBaseConverter;
use Fatkulnurk\RadixConverter\CustomConverterRegistry;
// Create a binary (base-2) converter
final readonly class BinaryStrategy extends AbstractBaseConverter
{
private const string CHARSET = '01';
protected function getCharset(): string
{
return self::CHARSET;
}
}
// Register and use
CustomConverterRegistry::register('binary', new BinaryStrategy());
$converter = ConverterFactory::make('binary');
echo $converter->encode(42); // "101010"
use Fatkulnurk\RadixConverter\ConverterManager;
use Fatkulnurk\RadixConverter\Enums\ConverterType;
// Create a manager
$manager = new ConverterManager();
// Use it
$encoded = $manager->encode(ConverterType::BASE62, 12345);
$decoded = $manager->decode(ConverterType::BASE62, $encoded);
class MyController extends Controller
{
public function __construct(
private ConverterManager $converterManager
) {}
public function store(Request $request)
{
$code = $this->converterManager->encode(ConverterType::BASE62, 123);
// ...
}
}