すべてのプロダクト
Search
ドキュメントセンター

CDN:その他の関数

最終更新日:Apr 01, 2026

このページでは、エッジスクリプトで利用可能なユーティリティ関数について説明します。対象となるのは、エンコーディングとデコーディング、乱数生成、チェックサム、型変換、一意の識別子の生成です。

Base64 エンコーディングとデコーディング

エッジスクリプトは、標準 Base64 (base64_enc / base64_dec) と URL セーフ Base64 (base64_enc_safe / base64_dec_safe) の 2 種類の Base64 バリアントを提供します。一般的なエンコーディングには標準バリアントを使用し、エンコードされた文字列が URL や HTTP ヘッダーに含まれる場合は URL セーフバリアントを使用してください。

base64_enc

標準 Base64 エンコーディングを使用して文字列をエンコードします。

構文

base64_enc(s [, no_padding])

パラメーター

パラメーター説明
sエンコードする文字列。
no_paddingパディング文字を省略するかどうかを指定します。末尾の = 文字を削除するには true に設定します。デフォルト値:false

戻り値

Base64 でエンコードされた文字列を返します。

if $http_data {
  decdata = base64_dec($http_data)
  say(concat('base64_decdata=', decdata))
  say(concat('base64_encdata=', base64_enc('hello, dsl')))
}

リクエストヘッダー:data: aGVsbG8sIGRzbA==

出力:

base64_decdata=hello, dsl
base64_encdata=aGVsbG8sIGRzbA==

base64_dec

Base64 でエンコードされた文字列をデコードします。

構文

base64_dec(s)

パラメーター

パラメーター説明
sデコードする Base64 でエンコードされた文字列。

戻り値

デコードされた元の文字列を返します。

if $http_data {
  decdata = base64_dec($http_data)
  say(concat('base64_decdata=', decdata))
  say(concat('base64_encdata=', base64_enc('hello, dsl')))
}

リクエストヘッダー:data: aGVsbG8sIGRzbA==

出力:

base64_decdata=hello, dsl
base64_encdata=aGVsbG8sIGRzbA==

base64_enc_safe

URL セーフ Base64 エンコーディングを使用して文字列をエンコードします。出力では、+- に、/_ に置き換えられ、パディング文字 = は削除されます。

構文

base64_enc_safe(str)

パラメーター

パラメーター説明
strエンコードする文字列。

戻り値

URL セーフな Base64 でエンコードされた文字列を返します。

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

URL セーフな Base64 でエンコードされた文字列をデコードします。デコードする前に、-+ に、_/ に置き換えられます。文字列の長さが 4 の倍数になるように、必要に応じてパディング文字 (=) が追加されます。

構文

base64_dec_safe(str)

パラメーター

パラメーター説明
strデコードする URL セーフな 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

URL エンコーディングとデコーディング

url_escape

URL エンコーディング (パーセントエンコーディング) を使用して文字列をエンコードします。

構文

url_escape(s)

パラメーター

パラメーター説明
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
esdata=%2Fabc%2F123%2F%20dd%2Ffile.m3u8
dsdata=/abc/123/ dd/file.m3u8

url_unescape

URL エンコードされた文字列をデコードします。

構文

url_unescape(s)

パラメーター

パラメーター説明
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
esdata=%2Fabc%2F123%2F%20dd%2Ffile.m3u8
dsdata=/abc/123/ dd/file.m3u8

乱数生成

randomseed

乱数ジェネレータを初期化します。リクエストごとに異なる乱数シーケンスを保証するために、rand の前にこの関数を呼び出してください。

構文

randomseed()

パラメーター

なし。

戻り値

なし。

randomseed()
r = rand(1, 100)

rand

指定された範囲 (両端を含む) 内の乱数を返します。

構文

rand(n1, n2)

パラメーター

パラメーター説明
n1下限。
n2上限。

返される値は n1 <= result <= n2 を満たします。

戻り値

乱数を返します。

r = rand(1, 100)

rand_hit

指定された確率に基づいて true または false を返します。これを使用して、パーセンテージベースのトラフィック分割や機能のロールアウトを実装します。

構文

rand_hit(ratio)

パラメーター

パラメーター説明
ratiotrue を返す確率。有効値:0~100。値が 100 の場合は常に true を返し、値が 0 の場合は常に false を返します。

戻り値

true または false を返します。

rand_hit(80)

rand_bytes

指定された長さのランダムな数字の文字列を生成します。

構文

rand_bytes(len)

パラメーター

パラメーター説明
len生成するランダムな数字の文字列の長さ。

戻り値

生成されたランダムな数字の文字列を返します。

rand_bytes(16)

チェックサム

crc

文字列の巡回冗長検査 (CRC) 値を計算します。

構文

crc(s)

パラメーター

パラメーター説明
sCRC 値を計算する文字列。

戻り値

入力文字列の CRC 値を返します。

crc('hello edgescript')

型変換

tonumber

文字列を数値型に変換します。

構文

tonumber(s [, base])

パラメーター

パラメーター説明
s変換する文字列。
base数値変換の基数。有効値:10 (10 進数) および 16 (16 進数)。デフォルト値:10

戻り値

数値を返します。

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

出力:

tonumber()=100

一意の識別子

uuid

ランダムに生成された UUID 文字列を返します。

構文

uuid()

パラメーター

なし。

戻り値

UUID 文字列を返します。例:16903a86-4173-4dea-842c-926c5860fe05

say(uuid())

出力:

16903a86-4173-4dea-842c-926c5860fe05