mirror of
https://github.com/Karaka-Management/Resources.git
synced 2026-01-10 21:08:41 +00:00
49 lines
910 B
PHP
Executable File
49 lines
910 B
PHP
Executable File
<?php
|
|
|
|
namespace Mpdf\Conversion;
|
|
|
|
class DecToAlpha
|
|
{
|
|
|
|
public function convert($valor, $toUpper = true)
|
|
{
|
|
// returns a string from A-Z to AA-ZZ to AAA-ZZZ
|
|
// OBS: A = 65 ASCII TABLE VALUE
|
|
if (($valor < 1) || ($valor > 18278)) {
|
|
return '?'; //supports 'only' up to 18278
|
|
}
|
|
|
|
$c2 = $c3 = '';
|
|
|
|
$c1 = 64 + $valor; // 1 letter (up to 26)
|
|
if ($valor > 702) { // 3 letters (up to 18278)
|
|
$c1 = 65 + floor(($valor - 703) / 676);
|
|
$c2 = 65 + floor((($valor - 703) % 676) / 26);
|
|
$c3 = 65 + floor((($valor - 703) % 676) % 26);
|
|
} elseif ($valor > 26) { // 2 letters (up to 702)
|
|
$c1 = (64 + (int) (($valor - 1) / 26));
|
|
$c2 = (64 + ($valor % 26));
|
|
if ($c2 === 64) {
|
|
$c2 += 26;
|
|
}
|
|
}
|
|
|
|
$alpha = chr($c1);
|
|
|
|
if ($c2 !== '') {
|
|
$alpha .= chr($c2);
|
|
}
|
|
|
|
if ($c3 !== '') {
|
|
$alpha .= chr($c3);
|
|
}
|
|
|
|
if (!$toUpper) {
|
|
$alpha = strtolower($alpha);
|
|
}
|
|
|
|
return $alpha;
|
|
}
|
|
|
|
}
|