-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmod62.php
More file actions
83 lines (77 loc) · 2.41 KB
/
mod62.php
File metadata and controls
83 lines (77 loc) · 2.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
/**
* Kullanılan Editör: PhpStorm
* Zaman Konumu: 20190517-140748
* Geliştirici: muaz
*/
class Mod62
{
/** standart karakter setini tanımla */
public $anahtar = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
/** kodlama fonksiyonu tanımla */
public function encode($girdi = 180667806)
{
/** karakter setini diziye dönüştür */
$anahtar = $this->anahtar;
$anahtar = str_split($anahtar);
/** bölüneni tanımla */
$bolunen = $girdi;
/** böleni tanımla */
$bolen = count($anahtar);
/** kalanları tanımla */
$kalanlar = [];
if ($bolunen == 0) {
array_push($kalanlar, $bolunen);
} else {
while ($bolunen > 0) {
$kalan = $bolunen % $bolen;
$bolum = floor($bolunen / $bolen);
array_push($kalanlar, $kalan);
$bolunen = $bolum;
}
}
/** karakterleri tanımla */
$i = count($kalanlar);
while ($i > 0) {
$i--;
$degerA = $anahtar[$kalanlar[$i]];
/** karşılık gelen değeri çıktıya ekle */
(empty($cikti)) ? $cikti = $degerA : $cikti = $cikti . $degerA;
}
/** çıktıyı döndür */
return $cikti;
}
/** çözümleme fonksiyonu tanımla */
public function decode($girdi = "mod62")
{
/** karakter setini diziye dönüştür */
$anahtar = $this->anahtar;
$anahtar = str_split($anahtar);
$anahtar = array_flip($anahtar);
/** böleni tanımla */
$bolen = count($anahtar);
/** karakterleri tanımla */
$girdi = str_split($girdi);
$girdi = array_reverse($girdi);
/** sayıyı hesapla */
$i = 0;
while ($i < count($girdi)) {
$kalan = $anahtar[$girdi[$i]];
$taban = pow($bolen, $i);
/** karşılık gelen değeri çıktıya ekle */
$bolunen = $kalan * $taban;
(empty($cikti)) ? $cikti = $bolunen : $cikti = $cikti + $bolunen;
$i++;
}
/** çıktıyı döndür */
return $cikti;
}
}
/** örnek kullanım
//obje oluşturumu
$obje = new Mod62();
//kodlama işlevi kullanımı
echo $obje->encode(46999); //kodlanacak değer sayı tipinde olmalıdır.
//çözümleme işlevi kullanımı
echo $obje->decode('ba');
*/