本文为您介绍Misc相关函数的语法、说明、参数、返回值和示例。

base64_enc

函数详细信息,请参见下表:

项目

描述

语法

base64_enc(s [, no_padding])

说明

base64编码。

参数

  • s:待编码的字符串。

  • no_padding:true表示无填充,默认false

返回值

base64编码后的字符串。

示例脚本

if $http_data {
 encdata = base64_enc($http_data)
 say(concat('base64_encdata=', encdata))
}

请求头示例

header: "data: hello world"

示例返回结果

base64_encdata=aGVsbG8gd29ybGQ=

base64_dec

函数详细信息,请参见下表:

项目

描述

语法

base64_dec(s)

说明

base64解码。

参数

s:待解码的字符串。

返回值

base64解码后的字符串。

示例脚本

if $http_data {
 decdata = base64_dec($http_data)
 say(concat('base64_decdata=', decdata))
}

请求头示例

header: "data: aGVsbG8gd29ybGQ="

示例返回结果

base64_decdata=hello world

url_escape

函数详细信息,请参见下表:

项目

描述

语法

url_escape(s)

说明

URL编码。

参数

s:待编码的字符串。

返回值

URL编码后的字符串。

示例

raw = '/abc/123/ dd/file.m3u8'
esdata = url_escape(raw)
dsdata = url_unescape(esdata)
if eq(raw, dsdata) {
    say(concat('raw=', raw))
    say(concat('esdata=', esdata))
}

输出:

raw=/abc/123/ dd/file.m3u8
esdata=%2Fabc%2F123%2F%20dd%2Ffile.m3u8

url_unescape

函数详细信息,请参见下表:

项目

描述

语法

url_unescape(s)

说明

URL解码。

参数

s:待解码的字符串。

返回值

URL解码后的字符串。

示例

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))
}

输出:

raw=/abc/123/ dd/file.m3u8
dsdata=/abc/123/ dd/file.m3u8

rand

函数详细信息,请参见下表:

项目

描述

语法

rand(n1, n2)

说明

生成随机数,随机数范围:n1 <= 返回值 <= n2。

参数

  • n1:随机数下限。

  • n2:随机数上限。

返回值

返回生成的随机数。

示例

r = rand(1,100)
say(concat('r=', r))

rand_hit

函数详细信息,请参见下表:

项目

描述

语法

rand_hit(ratio)

说明

按指定概率返回真假。

参数

ratio:为真概率,有效值范围为[0-100]。

返回值

按ratio概率返回true。例如:当ratio为100时,返回true,当ratio为0时,返回false

示例

ratio = rand_hit(80)
say(concat('ratio=', ratio))

crc

函数详细信息,请参见下表:

项目

描述

语法

crc(s)

说明

计算crc摘要。

参数

s:待计算摘要的字符串。

返回值

返回s的crc摘要。

示例

crc('hello edgescript')

tonumber

函数详细信息,请参见下表:

项目

描述

语法

tonumber(s [, base])

说明

类型转换,将字符串类型转换为数字类型。

参数

  • s:待转换的字符串。

  • base:可指定待转换目标的进制,可用值:10和16,默认10进制。

示例

n = tonumber('100')
say(concat('tonumber()=', n))

输出:

tonumber()=100

base64_enc_safe

函数详细信息,请参见下表:

项目

描述

语法

base64_enc_safe(str)

说明

对输入的字符串进行Base64安全编码。安全编码后输出时,需要将“+”替换成“-”、“/”替换成“_”,同时去掉编码后的“=”。

参数

str:待加密的字符串。

返回值

返回字符串类型

示例

add_rsp_header('X-RESPOND-OUTPUT', concat('base64_enc_safe=', base64_enc_safe('hello, dsl')), true)

输出响应头:

X-RESPOND-OUTPUT:base64_enc_safe=aGVsbG8sIGRzbA

base64_dec_safe

函数详细信息,请参见下表:

项目

描述

语法

base64_dec_safe(str)

说明

对输入的字符串进行Base64安全解码。安全解码后输出时,需要将“-”替换成“+”、“_”替换成“/”,末尾用“=”按照4的余数补齐。

参数

str:Base64加密后的内容。

返回值

返回字符串类型。

示例

add_rsp_header('X-RESPOND-OUTPUT', concat('base64_dec_safe=', base64_dec_safe(base64_enc_safe('hello, dsl'))), true)

输出响应头:

X-RESPOND-OUTPUT:base64_dec_safe=hello, dsl

randomseed

函数详细信息,请参见下表:

项目

描述

语法

randomseed()

说明

指定生成随机数种子。

参数

无。

返回值

无。

示例

randomseed()
r = rand(1,100)
say(concat('r=', r))

rand_bytes

函数详细信息,请参见下表:

项目

描述

语法

rand_bytes(len)

说明

生成随机数字符串。

参数

len:指定生成的随机数字符串的长度。

返回值

返回生成的随机数字符串。

示例

rand_bytes(16)

uuid

函数详细信息,请参见下表:

项目

描述

语法

uuid()

说明

返回uuid格式的字符串。

参数

无。

返回值

返回uuid,示例:16903a86-4173-4dea-842c-926c5860fe05。

示例

uuid = uuid()
say(concat('uuid=', uuid))

输出:

uuid=54853c52-4c57-47dc-9b73-fb95d30b3d75