HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: /var/www/admin.javaapp.co.uk/vendor/aws/aws-crt-php/src/AWS/CRT/Internal/Encoding.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);
    }
}