Halaman ini mencakup fungsi utilitas yang tersedia di EdgeScript: pengkodean dan penguraian, pembangkitan bilangan acak, checksum, konversi tipe, serta pembangkitan pengenal unik.
Pengkodean dan penguraian Base64
EdgeScript menyediakan dua varian Base64: Base64 standar (base64_enc / base64_dec) dan Base64 yang aman untuk URL (base64_enc_safe / base64_dec_safe). Gunakan varian standar untuk pengkodean umum; gunakan varian yang aman untuk URL ketika string terkode muncul dalam URL atau Header HTTP.
base64_enc
Mengkodekan string menggunakan pengkodean Base64 standar.
Sintaks
base64_enc(s [, no_padding])Parameter
| Parameter | Deskripsi |
|---|---|
s | String yang akan dikodekan. |
no_padding | Menentukan apakah karakter padding dihilangkan. Atur ke true untuk menghapus karakter = di akhir. Nilai default: false. |
Nilai kembalian
Mengembalikan string yang telah dikodekan Base64.
Contoh
if $http_data {
decdata = base64_dec($http_data)
say(concat('base64_decdata=', decdata))
say(concat('base64_encdata=', base64_enc('hello, dsl')))
}Header permintaan: data: aGVsbG8sIGRzbA==
Output:
base64_decdata=hello, dsl
base64_encdata=aGVsbG8sIGRzbA==base64_dec
Menguraikan string yang telah dikodekan Base64.
Sintaks
base64_dec(s)Parameter
| Parameter | Deskripsi |
|---|---|
s | String yang telah dikodekan Base64 yang akan diuraikan. |
Nilai kembalian
Mengembalikan string mentah hasil penguraian.
Contoh
if $http_data {
decdata = base64_dec($http_data)
say(concat('base64_decdata=', decdata))
say(concat('base64_encdata=', base64_enc('hello, dsl')))
}Header permintaan: data: aGVsbG8sIGRzbA==
Output:
base64_decdata=hello, dsl
base64_encdata=aGVsbG8sIGRzbA==base64_enc_safe
Mengkodekan string menggunakan pengkodean Base64 yang aman untuk URL. Dalam output, + diganti dengan -, / diganti dengan _, dan karakter padding = dihapus.
Sintaks
base64_enc_safe(str)Parameter
| Parameter | Deskripsi |
|---|---|
str | String yang akan dikodekan. |
Nilai kembalian
Mengembalikan string yang telah dikodekan Base64 yang aman untuk URL.
Contoh
add_rsp_header('X-RESPOND-OUTPUT', concat('base64_enc_safe=', base64_enc_safe('hello, dsl')), true)Header respons:
X-RESPOND-OUTPUT: base64_enc_safe=aGVsbG8sIGRzbAbase64_dec_safe
Menguraikan string yang telah dikodekan Base64 yang aman untuk URL. Sebelum penguraian, - diganti dengan + dan _ diganti dengan /. Karakter padding (=) ditambahkan sesuai kebutuhan agar panjang string menjadi kelipatan empat.
Sintaks
base64_dec_safe(str)Parameter
| Parameter | Deskripsi |
|---|---|
str | String yang telah dikodekan Base64 yang aman untuk URL yang akan diuraikan. |
Nilai kembalian
Mengembalikan string mentah hasil penguraian.
Contoh
add_rsp_header('X-RESPOND-OUTPUT', concat('base64_dec_safe=', base64_dec_safe(base64_enc_safe('hello, dsl'))), true)Header respons:
X-RESPOND-OUTPUT: base64_dec_safe=hello, dslPengkodean dan penguraian URL
url_escape
Mengkodekan string menggunakan pengkodean URL (percent-encoding).
Sintaks
url_escape(s)Parameter
| Parameter | Deskripsi |
|---|---|
s | String yang akan dikodekan. |
Nilai kembalian
Mengembalikan string yang telah dikodekan URL.
Contoh
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))
}Output:
raw=/abc/123/ dd/file.m3u8
esdata=%2Fabc%2F123%2F%20dd%2Ffile.m3u8
dsdata=/abc/123/ dd/file.m3u8url_unescape
Menguraikan string yang telah dikodekan URL.
Sintaks
url_unescape(s)Parameter
| Parameter | Deskripsi |
|---|---|
s | String yang telah dikodekan URL yang akan diuraikan. |
Nilai kembalian
Mengembalikan string mentah hasil penguraian.
Contoh
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))
}Output:
raw=/abc/123/ dd/file.m3u8
esdata=%2Fabc%2F123%2F%20dd%2Ffile.m3u8
dsdata=/abc/123/ dd/file.m3u8Pembangkitan bilangan acak
randomseed
Menginisialisasi penghasil angka acak. Panggil fungsi ini sebelum rand untuk memastikan urutan acak berbeda pada setiap permintaan.
Sintaks
randomseed()Parameter
Tidak ada.
Nilai kembalian
Tidak ada.
Contoh
randomseed()
r = rand(1, 100)rand
Mengembalikan bilangan acak dalam rentang tertentu (inklusif).
Sintaks
rand(n1, n2)Parameter
| Parameter | Deskripsi |
|---|---|
n1 | Batas bawah. |
n2 | Batas atas. |
Nilai yang dikembalikan memenuhi n1 <= result <= n2.
Nilai kembalian
Mengembalikan bilangan acak.
Contoh
r = rand(1, 100)rand_hit
Mengembalikan true atau false berdasarkan probabilitas yang ditentukan. Gunakan fungsi ini untuk menerapkan pemisahan lalu lintas berbasis persentase atau peluncuran fitur secara bertahap.
Sintaks
rand_hit(ratio)Parameter
| Parameter | Deskripsi |
|---|---|
ratio | Probabilitas mengembalikan true. Nilai valid: 0–100. Nilai 100 selalu mengembalikan true; nilai 0 selalu mengembalikan false. |
Nilai kembalian
Mengembalikan true atau false.
Contoh
rand_hit(80)rand_bytes
Membangkitkan string numerik acak dengan panjang tertentu.
Sintaks
rand_bytes(len)Parameter
| Parameter | Deskripsi |
|---|---|
len | Panjang string numerik acak yang akan dibangkitkan. |
Nilai kembalian
Mengembalikan string numerik acak yang dibangkitkan.
Contoh
rand_bytes(16)Checksum
crc
Menghitung nilai Cyclic Redundancy Check (CRC) untuk sebuah string.
Sintaks
crc(s)Parameter
| Parameter | Deskripsi |
|---|---|
s | String yang akan dihitung nilai CRC-nya. |
Nilai kembalian
Mengembalikan nilai CRC dari string input.
Contoh
crc('hello edgescript')Konversi tipe
tonumber
Mengonversi string ke tipe numerik.
Sintaks
tonumber(s [, base])Parameter
| Parameter | Deskripsi |
|---|---|
s | String yang akan dikonversi. |
base | Basis untuk konversi numerik. Nilai valid: 10 (desimal) dan 16 (heksadesimal). Nilai default: 10. |
Nilai kembalian
Mengembalikan angka.
Contoh
n = tonumber('100')
say(concat('tonumber()=', n))Output:
tonumber()=100Pengenal unik
uuid
Mengembalikan string UUID yang dibangkitkan secara acak.
Sintaks
uuid()Parameter
Tidak ada.
Nilai kembalian
Mengembalikan string UUID. Contoh: 16903a86-4173-4dea-842c-926c5860fe05.
Contoh
say(uuid())Output:
16903a86-4173-4dea-842c-926c5860fe05