Esta página describe las funciones de utilidad disponibles en EdgeScript: codificación y decodificación, generación de números aleatorios, sumas de verificación, conversión de tipos y generación de identificadores únicos.
Codificación y decodificación Base64
EdgeScript ofrece dos variantes de Base64: Base64 estándar (base64_enc / base64_dec) y Base64 segura para URL (base64_enc_safe / base64_dec_safe). Utilice la variante estándar para codificaciones generales; emplee la variante segura para URL cuando la cadena codificada aparezca en URL o encabezados HTTP.
base64_enc
Codifica una cadena mediante la codificación Base64 estándar.
Sintaxis
base64_enc(s [, no_padding])
Parámetros
|
Parameter |
Description |
|
|
La cadena que se va a codificar. |
|
|
Especifica si se omiten los caracteres de relleno. Establezca este valor en |
Valor de retorno
Devuelve una cadena codificada en Base64.
Ejemplo
if $http_data {
decdata = base64_dec($http_data)
say(concat('base64_decdata=', decdata))
say(concat('base64_encdata=', base64_enc('hello, dsl')))
}
Encabezado de solicitud: data: aGVsbG8sIGRzbA==
Salida:
base64_decdata=hello, dsl
base64_encdata=aGVsbG8sIGRzbA==
base64_dec
Decodifica una cadena codificada en Base64.
Sintaxis
base64_dec(s)
Parámetros
|
Parameter |
Description |
|
|
La cadena codificada en Base64 que se va a decodificar. |
Valor de retorno
Devuelve la cadena sin procesar decodificada.
Ejemplo
if $http_data {
decdata = base64_dec($http_data)
say(concat('base64_decdata=', decdata))
say(concat('base64_encdata=', base64_enc('hello, dsl')))
}
Encabezado de solicitud: data: aGVsbG8sIGRzbA==
Salida:
base64_decdata=hello, dsl
base64_encdata=aGVsbG8sIGRzbA==
base64_enc_safe
Codifica una cadena mediante la codificación Base64 segura para URL. En la salida, + se reemplaza por -, / se reemplaza por _ y se eliminan los caracteres de relleno =.
Sintaxis
base64_enc_safe(str)
Parámetros
|
Parameter |
Description |
|
|
La cadena que se va a codificar. |
Valor de retorno
Devuelve una cadena codificada en Base64 segura para URL.
Ejemplo
add_rsp_header('X-RESPOND-OUTPUT', concat('base64_enc_safe=', base64_enc_safe('hello, dsl')), true)
Encabezado de respuesta:
X-RESPOND-OUTPUT: base64_enc_safe=aGVsbG8sIGRzbA
base64_dec_safe
Decodifica una cadena codificada en Base64 segura para URL. Antes de la decodificación, - se reemplaza por + y _ se reemplaza por /. Los caracteres de relleno (=) se agregan según sea necesario para que la longitud de la cadena sea múltiplo de cuatro.
Sintaxis
base64_dec_safe(str)
Parámetros
|
Parameter |
Description |
|
|
La cadena codificada en Base64 segura para URL que se va a decodificar. |
Valor de retorno
Devuelve la cadena sin procesar decodificada.
Ejemplo
add_rsp_header('X-RESPOND-OUTPUT', concat('base64_dec_safe=', base64_dec_safe(base64_enc_safe('hello, dsl'))), true)
Encabezado de respuesta:
X-RESPOND-OUTPUT: base64_dec_safe=hello, dsl
Codificación y decodificación de URL
url_escape
Codifica una cadena mediante la codificación de URL (codificación porcentual).
Sintaxis
url_escape(s)
Parámetros
|
Parameter |
Description |
|
|
La cadena que se va a codificar. |
Valor de retorno
Devuelve una cadena codificada para URL.
Ejemplo
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))
}
Salida:
raw=/abc/123/ dd/file.m3u8
esdata=%2Fabc%2F123%2F%20dd%2Ffile.m3u8
dsdata=/abc/123/ dd/file.m3u8
url_unescape
Decodifica una cadena codificada para URL.
Sintaxis
url_unescape(s)
Parámetros
|
Parameter |
Description |
|
|
La cadena codificada para URL que se va a decodificar. |
Valor de retorno
Devuelve la cadena sin procesar decodificada.
Ejemplo
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))
}
Salida:
raw=/abc/123/ dd/file.m3u8
esdata=%2Fabc%2F123%2F%20dd%2Ffile.m3u8
dsdata=/abc/123/ dd/file.m3u8
Generación de números aleatorios
randomseed
Inicializa el generador de números aleatorios. Ejecute esta función antes de rand para asegurar secuencias aleatorias distintas entre solicitudes.
Sintaxis
randomseed()
Parámetros
Ninguna.
Valor de retorno
Ninguna.
Ejemplo
randomseed()
r = rand(1, 100)
rand
Devuelve un número aleatorio dentro de un rango especificado (inclusive).
Sintaxis
rand(n1, n2)
Parámetros
|
Parameter |
Description |
|
|
El límite inferior. |
|
|
El límite superior. |
El valor devuelto cumple con n1 <= result <= n2.
Valor de retorno
Devuelve un número aleatorio.
Ejemplo
r = rand(1, 100)
rand_hit
Devuelve true o false según la probabilidad especificada. Utilice esta función para implementar divisiones de tráfico basadas en porcentajes o lanzamientos graduales de funciones.
Sintaxis
rand_hit(ratio)
Parámetros
|
Parameter |
Description |
|
|
La probabilidad de devolver |
Valor de retorno
Devuelve true o false.
Ejemplo
rand_hit(80)
rand_bytes
Genera una cadena numérica aleatoria con la longitud especificada.
Sintaxis
rand_bytes(len)
Parámetros
|
Parameter |
Description |
|
|
La longitud de la cadena numérica aleatoria que se va a generar. |
Valor de retorno
Devuelve la cadena numérica aleatoria generada.
Ejemplo
rand_bytes(16)
Suma de verificación
crc
Calcula un valor de verificación de redundancia cíclica (CRC) para una cadena.
Sintaxis
crc(s)
Parámetros
|
Parameter |
Description |
|
|
La cadena para la cual se calculará el valor CRC. |
Valor de retorno
Devuelve el valor CRC de la cadena de entrada.
Ejemplo
crc('hello edgescript')
Conversión de tipos
tonumber
Convierte una cadena a un tipo numérico.
Sintaxis
tonumber(s [, base])
Parámetros
|
Parameter |
Description |
|
|
La cadena que se va a convertir. |
|
|
La base para la conversión numérica. Valores válidos: |
Valor de retorno
Devuelve un número.
Ejemplo
n = tonumber('100')
say(concat('tonumber()=', n))
Salida:
tonumber()=100
Identificador único
uuid
Devuelve una cadena UUID generada aleatoriamente.
Sintaxis
uuid()
Parámetros
Ninguna.
Valor de retorno
Devuelve una cadena UUID. Ejemplo: 16903a86-4173-4dea-842c-926c5860fe05.
Ejemplo
say(uuid())
Salida:
16903a86-4173-4dea-842c-926c5860fe05