Server/php/bytes_utils.php (24 lines of code) (raw):
<?php
function nextMultiple(int $n, int $baseValue): int {
if ($baseValue <= 0 || $n <= 0) {
return 0;
}
$result = $baseValue;
while ($result < $n) {
$result *= 2;
}
return $result;
}
function getFixedLengthBytes(string $srcBytes, int $fixedSize, string $paddingByte = "\x00"): string {
$currentLength = strlen($srcBytes);
if ($currentLength < $fixedSize) {
return $srcBytes . str_repeat($paddingByte, $fixedSize - $currentLength);
} else {
return substr($srcBytes, 0, $fixedSize);
}
}
function getFixedLengthBytesAuto(string $srcBytes): string {
$nextMultipleOf256 = nextMultiple(strlen($srcBytes), 256);
return getFixedLengthBytes($srcBytes, $nextMultipleOf256);
}
?>