Esta página descreve as funções utilitárias do EdgeScript: codificação e decodificação, geração de números aleatórios, checksums, conversão de tipos e geração de identificadores únicos.
Codificação e decodificação Base64
O EdgeScript oferece duas variantes de Base64: padrão (base64_enc / base64_dec) e segura para URL (base64_enc_safe / base64_dec_safe). Use a variante padrão para codificações gerais e a variante segura para URL quando a string codificada aparecer em URLs ou cabeçalhos HTTP.
base64_enc
Codifica uma string em Base64 padrão.
Sintaxe
base64_enc(s [, no_padding])
Parâmetros
|
Parâmetro |
Descrição |
|
|
String a codificar. |
|
|
Indica se os caracteres de preenchimento devem ser omitidos. Defina como |
Valor de retorno
Retorna uma string codificada em Base64.
Exemplo
if $http_data {
decdata = base64_dec($http_data)
say(concat('base64_decdata=', decdata))
say(concat('base64_encdata=', base64_enc('hello, dsl')))
}
Cabeçalho da requisição: data: aGVsbG8sIGRzbA==
Saída:
base64_decdata=hello, dsl
base64_encdata=aGVsbG8sIGRzbA==
base64_dec
Decodifica uma string em Base64.
Sintaxe
base64_dec(s)
Parâmetros
|
Parâmetro |
Descrição |
|
|
String codificada em Base64 a decodificar. |
Valor de retorno
Retorna a string original decodificada.
Exemplo
if $http_data {
decdata = base64_dec($http_data)
say(concat('base64_decdata=', decdata))
say(concat('base64_encdata=', base64_enc('hello, dsl')))
}
Cabeçalho da requisição: data: aGVsbG8sIGRzbA==
Saída:
base64_decdata=hello, dsl
base64_encdata=aGVsbG8sIGRzbA==
base64_enc_safe
Codifica uma string em Base64 seguro para URL. Na saída, + é substituído por -, / é substituído por _ e os caracteres de preenchimento = são removidos.
Sintaxe
base64_enc_safe(str)
Parâmetros
|
Parâmetro |
Descrição |
|
|
String a codificar. |
Valor de retorno
Retorna uma string codificada em Base64 seguro para URL.
Exemplo
add_rsp_header('X-RESPOND-OUTPUT', concat('base64_enc_safe=', base64_enc_safe('hello, dsl')), true)
Cabeçalho da resposta:
X-RESPOND-OUTPUT: base64_enc_safe=aGVsbG8sIGRzbA
base64_dec_safe
Decodifica uma string em Base64 seguro para URL. Antes da decodificação, - é substituído por + e _ é substituído por /. Caracteres de preenchimento (=) são adicionados conforme necessário para tornar o comprimento da string múltiplo de quatro.
Sintaxe
base64_dec_safe(str)
Parâmetros
|
Parâmetro |
Descrição |
|
|
String codificada em Base64 seguro para URL a decodificar. |
Valor de retorno
Retorna a string original decodificada.
Exemplo
add_rsp_header('X-RESPOND-OUTPUT', concat('base64_dec_safe=', base64_dec_safe(base64_enc_safe('hello, dsl'))), true)
Cabeçalho da resposta:
X-RESPOND-OUTPUT: base64_dec_safe=hello, dsl
Codificação e decodificação de URL
url_escape
Codifica uma string usando codificação de URL (percent-encoding).
Sintaxe
url_escape(s)
Parâmetros
|
Parâmetro |
Descrição |
|
|
String a codificar. |
Valor de retorno
Retorna uma string com codificação de URL.
Exemplo
raw = '/abc/123/ dd/file.m3u8'
esdata = url_escape(raw)
dsdata = url_unescape(esdata)
if eq(raw, dsdata) {
say(concat('raw=', raw))
say(concat('dsdata=', dsdata))
}
Saída:
raw=/abc/123/ dd/file.m3u8
esdata=%2Fabc%2F123%2F%20dd%2Ffile.m3u8
dsdata=/abc/123/ dd/file.m3u8
url_unescape
Decodifica uma string com codificação de URL.
Sintaxe
url_unescape(s)
Parâmetros
|
Parâmetro |
Descrição |
|
|
String com codificação de URL a decodificar. |
Valor de retorno
Retorna a string original decodificada.
Exemplo
raw = '/abc/123/ dd/file.m3u8'
esdata = url_escape(raw)
dsdata = url_unescape(esdata)
if eq(raw, dsdata) {
say(concat('raw=', raw))
say(concat('dsdata=', dsdata))
}
Saída:
raw=/abc/123/ dd/file.m3u8
esdata=%2Fabc%2F123%2F%20dd%2Ffile.m3u8
dsdata=/abc/123/ dd/file.m3u8
Geração de números aleatórios
randomseed
Inicializa o gerador de números aleatórios. Execute esta função antes de rand para garantir sequências aleatórias distintas entre requisições.
Sintaxe
randomseed()
Parâmetros
Nenhum.
Valor de retorno
Nenhum.
Exemplo
randomseed()
r = rand(1, 100)
rand
Retorna um número aleatório dentro de um intervalo especificado (inclusivo).
Sintaxe
rand(n1, n2)
Parâmetros
|
Parâmetro |
Descrição |
|
|
Limite inferior. |
|
|
Limite superior. |
O valor retornado satisfaz a condição n1 <= result <= n2.
Valor de retorno
Retorna um número aleatório.
Exemplo
r = rand(1, 100)
rand_hit
Retorna true ou false com base na probabilidade especificada. Utilize esta função para implementar divisão de tráfego por porcentagem ou liberação gradual de recursos.
Sintaxe
rand_hit(ratio)
Parâmetros
|
Parâmetro |
Descrição |
|
|
Probabilidade de retornar |
Valor de retorno
Retorna true ou false.
Exemplo
rand_hit(80)
rand_bytes
Gera uma string numérica aleatória com o comprimento especificado.
Sintaxe
rand_bytes(len)
Parâmetros
|
Parâmetro |
Descrição |
|
|
Comprimento da string numérica aleatória a gerar. |
Valor de retorno
Retorna a string numérica aleatória gerada.
Exemplo
rand_bytes(16)
Checksum
crc
Calcula o valor de Cyclic Redundancy Check (CRC) de uma string.
Sintaxe
crc(s)
Parâmetros
|
Parâmetro |
Descrição |
|
|
String para cálculo do valor CRC. |
Valor de retorno
Retorna o valor CRC da string de entrada.
Exemplo
crc('hello edgescript')
Conversão de tipos
tonumber
Converte uma string em tipo numérico.
Sintaxe
tonumber(s [, base])
Parâmetros
|
Parâmetro |
Descrição |
|
|
String a converter. |
|
|
Base da conversão numérica. Valores válidos: |
Valor de retorno
Retorna um número.
Exemplo
n = tonumber('100')
say(concat('tonumber()=', n))
Saída:
tonumber()=100
Identificador único
uuid
Retorna uma string UUID gerada aleatoriamente.
Sintaxe
uuid()
Parâmetros
Nenhum.
Valor de retorno
Retorna uma string UUID. Exemplo: 16903a86-4173-4dea-842c-926c5860fe05.
Exemplo
say(uuid())
Saída:
16903a86-4173-4dea-842c-926c5860fe05