mirror of
https://github.com/linuxserver/Heimdall.git
synced 2026-02-21 20:20:34 +09:00
38 lines
990 B
PHP
38 lines
990 B
PHP
<?php
|
|
/**
|
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
* SPDX-License-Identifier: Apache-2.0.
|
|
*/
|
|
namespace AWS\CRT\Internal;
|
|
|
|
final class Encoding {
|
|
public static function readString(&$buffer) {
|
|
list($len, $str) = self::decodeString($buffer);
|
|
// Advance by sizeof(length) + strlen(str)
|
|
$buffer = substr($buffer, 4 + $len);
|
|
return $str;
|
|
}
|
|
|
|
public static function readStrings($buffer) {
|
|
$strings = [];
|
|
while (strlen($buffer)) {
|
|
$strings []= self::readString($buffer);
|
|
}
|
|
return $strings;
|
|
}
|
|
|
|
public static function decodeString($buffer) {
|
|
$len = unpack("N", $buffer)[1];
|
|
$buffer = substr($buffer, 4);
|
|
$str = unpack("a{$len}", $buffer)[1];
|
|
return [$len, $str];
|
|
}
|
|
|
|
public static function encodeString($str) {
|
|
if (is_array($str)) {
|
|
$str = $str[0];
|
|
}
|
|
return pack("Na*", strlen($str), $str);
|
|
}
|
|
}
|