Varsayalım ki elinizde bulunan integer değerleri, sade şekliyle insanların görmesini istemiyorsunuz. Yapacağınız şey, değeri eşsiz bir koda dönüştürmek olacaktır. Aynı işlemi geri alma seçeneğiniz de olmalı. Bu işlem için base_convert() fonksiyonu kullanılabilir.


Örnek


Sağlanan $suffix değeri herhangi bir şey olabilir.


class BaseConverter
{
private $suffix;

public function __construct($suffix)
{
$this->suffix = $suffix;
}

public function convert($value)
{
if (is_int($this->suffix)) {
$value = strtoupper(base_convert($value.$this->suffix, 10, 36));
} else {
$value = strtoupper(base_convert($value, 10, 36));
}

return $value;
}

public function inverse($value)
{
if (is_int($this->suffix)) {
$value = substr(base_convert($value, 36, 10), 0, -(strlen($this->suffix)));
} else {
$value = base_convert($value, 36, 10);
}

return $value;
}
}

$value = 123456;
$bc = new BaseConverter(1907);
$encoded = $bc->convert($value);
$decoded = $bc->inverse($encoded);

echo "ORIGINAL: $value | ENCODED: $encoded | DECODED: $decoded";

Sonuç


ORIGINAL: 123456 | ENCODED: KF0Y2B | DECODED: 123456

Dikkat


Büyük değerlerde hassasiyetini kaybettiği için kullanırken dikkat edin. Mesela bunu 1234567890987654321 deneyin.