> $shift) : ''; } return $out; } public static function encode(string $data): string { $bin = ''; $encoded = ''; $length = strlen($data); for($i = 0; $i < $length; $i++) { $bin .= sprintf('%08b', ord($data[$i])); } $bin = str_split($bin, 5); $last = array_pop($bin); $bin[] = str_pad($last, 5, '0', STR_PAD_RIGHT); foreach($bin as $part) { $encoded .= self::CHARS[bindec($part)]; } return $encoded; } }