3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * Кодирует число в буквенно-числовую последовательность. * * @param int $number Число для кодирования. * @return string Закодированная буквенно-числовая последовательность. */ function encodeNumber(int $number): string { // Символы, используемые для кодирования $charset = join('', [...range('a', 'z'), ...range('A', 'Z'), ...range(0, 9)]); $base = strlen($charset); // Определение основания системы счисления $encoded = ''; // Преобразование числа в заданную систему счисления while ($number > 0) { $remainder = $number % $base; $encoded = $charset[$remainder] . $encoded; $number = (int) ($number / $base); } return $encoded; } /** * Декодирует буквенно-числовую последовательность в число. * * @param string $encoded Закодированная буквенно-числовая последовательность. * @return int Декодированное число. */ function decodeNumber(string $encoded): int { $charset = join('', [...range('a', 'z'), ...range('A', 'Z'), ...range(0, 9)]); $base = strlen($charset); $decoded = 0; // Преобразование буквенно-числовой последовательности в число $length = strlen($encoded); for ($i = 0; $i < $length; $i++) { $value = strpos($charset, $encoded[$i]); $decoded = $decoded * $base + $value; } return $decoded; } $numbers = [56789, 89567, 129087, 9999999, 1e8]; // Кодирование чисел и вывод закодированных значений foreach ($numbers as $number) { $encoded = encodeNumber($number); echo "$number: '$encoded' -> '" . decodeNumber($encoded) . "'\n"; }
Output for git.master, git.master_jit, rfc.property-hooks
56789: 'oV7' -> '56789' 89567: 'xsN' -> '89567' 129087: 'HKd' -> '129087' 9999999: 'P7Ct' -> '9999999' 100000000: 'gVKJo' -> '100000000'

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
38.2 ms | 401 KiB | 8 Q