Halaman ini mencakup fungsi utilitas yang tersedia di EdgeScript: encode dan decode, penghasil angka acak, checksum, konversi tipe, serta pembuatan 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 terenkripsi muncul dalam URL atau Header HTTP.
base64_enc
Mengencode string menggunakan pengkodean Base64 standar.
Sintaksis
base64_enc(s [, no_padding])Parameter
Parameter | Deskripsi |
| String yang akan diencode. |
| Menentukan apakah karakter padding dihilangkan. Atur ke |
Nilai kembalian
Mengembalikan string yang telah diencode dengan 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
Mengurai string yang telah diencode dengan Base64.
Sintaksis
base64_dec(s)Parameter
Parameter | Deskripsi |
| String yang telah diencode dengan Base64 dan akan diurai. |
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
Mengencode string menggunakan pengkodean Base64 yang aman untuk URL. Dalam output, + diganti dengan -, / diganti dengan _, dan karakter padding = dihapus.
Sintaksis
base64_enc_safe(str)Parameter
Parameter | Deskripsi |
| String yang akan diencode. |
Nilai kembalian
Mengembalikan string yang telah diencode dengan 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
Mengurai string yang telah diencode dengan Base64 yang aman untuk URL. Sebelum penguraian, - diganti dengan + dan _ diganti dengan /. Karakter padding (=) ditambahkan jika diperlukan agar panjang string menjadi kelipatan empat.
Sintaksis
base64_dec_safe(str)Parameter
Parameter | Deskripsi |
| String yang telah diencode dengan Base64 yang aman untuk URL dan akan diurai. |
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
Mengencode string menggunakan pengkodean URL (percent-encoding).
Sintaksis
url_escape(s)Parameter
Parameter | Deskripsi |
| String yang akan diencode. |
Nilai kembalian
Mengembalikan string yang telah diencode dengan 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
Mengurai string yang telah diencode dengan URL.
Sintaksis
url_unescape(s)Parameter
Parameter | Deskripsi |
| String yang telah diencode dengan URL dan akan diurai. |
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.m3u8Penghasil angka acak
randomseed
Menginisialisasi penghasil angka acak. Panggil fungsi ini sebelum rand untuk memastikan urutan angka acak berbeda pada setiap permintaan.
Sintaksis
randomseed()Parameter
Tidak ada.
Nilai kembalian
Tidak ada.
Contoh
randomseed()
r = rand(1, 100)rand
Mengembalikan bilangan acak dalam rentang tertentu (inklusif).
Sintaksis
rand(n1, n2)Parameter
Parameter | Deskripsi |
| Batas bawah. |
| 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 traffic berbasis persentase atau peluncuran fitur bertahap.
Sintaksis
rand_hit(ratio)Parameter
Parameter | Deskripsi |
| Probabilitas mengembalikan |
Nilai kembalian
Mengembalikan true atau false.
Contoh
rand_hit(80)rand_bytes
Menghasilkan string numerik acak dengan panjang tertentu.
Sintaksis
rand_bytes(len)Parameter
Parameter | Deskripsi |
| Panjang string numerik acak yang akan dihasilkan. |
Nilai kembalian
Mengembalikan string numerik acak yang dihasilkan.
Contoh
rand_bytes(16)Checksum
crc
Menghitung nilai Cyclic Redundancy Check (CRC) untuk sebuah string.
Sintaksis
crc(s)Parameter
Parameter | Deskripsi |
| 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.
Sintaksis
tonumber(s [, base])Parameter
Parameter | Deskripsi |
| String yang akan dikonversi. |
| Basis untuk konversi numerik. Nilai valid: |
Nilai kembalian
Mengembalikan angka.
Contoh
n = tonumber('100')
say(concat('tonumber()=', n))Output:
tonumber()=100Pengenal unik
uuid
Mengembalikan string UUID yang dihasilkan secara acak.
Sintaksis
uuid()Parameter
Tidak ada.
Nilai kembalian
Mengembalikan string UUID. Contoh: 16903a86-4173-4dea-842c-926c5860fe05.
Contoh
say(uuid())Output:
16903a86-4173-4dea-842c-926c5860fe05