Supported Versions: PHP 4, PHP 5, PHP 7, PHP 8
Return part of a string
substr(string $stringint $offset, ?int $length null): string
        foreach ($x_amz_params as $key => $value) {

            
$query_string .= rawurlencode($key) . '=' rawurlencode($value) . "&";

        }

        
$query_string substr($query_string0, -1);



        
$canonical_request "GET\n" $encoded_uri "\n" $query_string "\n" $header_string "\n" $signed_headers_string "\nUNSIGNED-PAYLOAD";

        
$string_to_sign $algorithm "\n" $time_text "\n" $scope "\n" hash('sha256'$canonical_request,
        foreach ($x_amz_params as $key => $value) {

            
$query_string .= rawurlencode($key) . '=' rawurlencode($value) . "&";

        }

        
$query_string substr($query_string0, -1);



        
$canonical_request "GET\n" $encoded_uri "\n" $query_string "\n" $header_string "\n" $signed_headers_string "\nUNSIGNED-PAYLOAD";

        
$string_to_sign $algorithm "\n" $time_text "\n" $scope "\n" hash('sha256'$canonical_request,
        foreach ($x_amz_params as $key => $value) {

            
$query_string .= rawurlencode($key) . '=' rawurlencode($value) . "&";

        }

        
$query_string substr($query_string0, -1);



        
$canonical_request "GET\n" $encoded_uri "\n" $query_string "\n" $header_string "\n" $signed_headers_string "\nUNSIGNED-PAYLOAD";

        
$string_to_sign $algorithm "\n" $time_text "\n" $scope "\n" hash('sha256'$canonical_request,
            if ($part === '' || substr($part, -1) !== ']') {


                
$array[$key] = $value;
                return;

            }



            
$part substr($part0, -1); // The last char is a ] => remove it to have the real key



            
if ($part === '') { // [] case

                
$pointer = &$pointer[];
            curl_setopt($this->curlHandleNextCURLOPT_FOLLOWLOCATIONtrue);

            
curl_setopt($this->curlHandleNextCURLOPT_FAILONERRORtrue);


            
$phpVersion substr(PHP_VERSION0strpos(PHP_VERSION'.'2));

            
curl_setopt($this->curlHandleNextCURLOPT_USERAGENT"bref/{$this->layer}/$phpVersion");

        }