Halaman ini mencakup fungsi utilitas yang tersedia di EdgeScript: pengkodean dan pendekodean, penghasil angka acak, checksum, konversi tipe, serta pembuatan pengenal unik.
Pengkodean dan pendekodean 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 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
Mendekode string yang telah diencode Base64.
Sintaksis
base64_dec(s)Parameter
Parameter | Deskripsi |
| String yang telah diencode Base64 yang akan didekode. |
Nilai kembalian
Mengembalikan string mentah hasil dekode.
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 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
Mendekode string yang telah diencode Base64 yang aman untuk URL. Sebelum didekode, - diganti dengan + dan _ diganti dengan /. Karakter padding (=) ditambahkan sesuai kebutuhan agar panjang string menjadi kelipatan empat.
Sintaksis
base64_dec_safe(str)Parameter
Parameter | Deskripsi |
| String yang telah diencode Base64 yang aman untuk URL yang akan didekode. |
Nilai kembalian
Mengembalikan string mentah hasil dekode.
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 pendekodean 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 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
Mendekode string yang telah diencode URL.
Sintaksis
url_unescape(s)Parameter
Parameter | Deskripsi |
| String yang telah diencode URL yang akan didekode. |
Nilai kembalian
Mengembalikan string mentah hasil dekode.
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 lalu lintas berbasis persentase atau peluncuran fitur secara 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 yang ditentukan.
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