<?php
function pack_encode($val) {
$str = '';
while ($val > 0) {
$str .= chr($val & 0xFF);
$val = $val >> 8;
}
// "/" json-encodes poorly and "=" is padding
return str_replace(
array('/', '='),
array('_', ''),
base64_encode($str)
);
}
for ($i=0; $i<32; $i++) {
echo pack_encode($i*1024*256) . "\n";
}
/*
$arr = array();
$packed = pack('N', 32767);
for ($i=0; $i<strlen($packed); $i++) {
$arr[$i] = ord($packed[$i]);
}
print_r($arr);
function pack_encode($val) {
$b64 = base64_encode(pack($format, $val));
return str_replace(array('/', '='), array('_', ''), $b64); // "/" json-encodes poorly and "=" is padding
}
function pack_decode($bin) {
$b64 = str_replace('_', '/', $bin); // un-padded
$data = unpack('C'.(length($bin)/2), base64_decode($b64, false));
$val = 0;
foreach ($data as $v) {
$val = ($val<<$width) | $v;
}
return $val;
}
$max = 32767;
$n = 20;
$step = intval($max/$n);
for ($i=0; $i<=$n; $i++) {
$val = $i*$step;
$enc = pack_encode($val);
$dec = pack_decode($val);
echo "$enc $dec $val\n";
}
*/
- Output for 4.3.0 - 4.3.11, 4.4.0 - 4.4.9, 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.24 - 5.5.35, 5.6.8 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.20, 7.2.6 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
- AAAE
AAAI
AAAM
AAAQ
AAAU
AAAY
AAAc
AAAg
AAAk
AAAo
AAAs
AAAw
AAA0
AAA4
AAA8
AABA
AABE
AABI
AABM
AABQ
AABU
AABY
AABc
AABg
AABk
AABo
AABs
AABw
AAB0
AAB4
AAB8
preferences:
252.18 ms | 406 KiB | 310 Q