全部产品
Search
文档中心

Edge Security Acceleration:Fungsi string

更新时间:Jun 21, 2025

Topik ini menjelaskan sintaks, deskripsi, parameter, dan nilai pengembalian dari fungsi string. Topik ini juga menyertakan contoh penggunaan fungsi-fungsi tersebut.

substr

Tabel berikut menampilkan detail tentang fungsi ini.

Fitur

Deskripsi

Sintaks

substr(s, i, j)

Deskripsi

Mengekstrak bagian dari sebuah string.

Parameter

  • s: string sumber.

  • i: posisi untuk memulai ekstraksi dalam string sumber, dihitung dari 1. Nilai -1 menentukan karakter paling kanan dari string. Tipe data: integer.

  • j: posisi untuk mengakhiri ekstraksi dalam string sumber, dihitung dari 1. Nilai -1 menentukan karakter paling kanan dari string. Tipe data: integer.

Nilai pengembalian

Mengembalikan substring s[i, j] yang diekstrak dari string sumber yang ditentukan oleh s.

Contoh

//Catatan: Dua metode yang digunakan untuk menentukan apakah file adalah file M3U8.
if eq(substr($uri, -5, -1), '.m3u8') {
    say(concat($uri, ' adalah .m3u8'))
}

uri_len = len($uri)
if eq(substr($uri, -5, uri_len), '.m3u8') {
    say(concat($uri, ' adalah .m3u8'))
}

concat

Tabel berikut menampilkan detail tentang fungsi ini.

Fitur

Deskripsi

Sintaks

concat(s1, ...)

Deskripsi

Menggabungkan string.

Parameter

String yang ingin Anda gabungkan. Anda dapat menentukan satu atau lebih string. Nilai numerik didukung.

Nilai pengembalian

Mengembalikan string yang digabungkan.

Contoh

// Menggabungkan string-string berikut
str1 = 'halo'
str2 = ' '
str3 = 'dunia'
say(concat(str1, str2, str3))

Output:

  hello world

upper

Tabel berikut menampilkan detail tentang fungsi ini.

Fitur

Deskripsi

Sintaks

upper(s)

Deskripsi

Mengonversi string menjadi huruf besar.

Parameter

s: string yang ingin Anda konversi.

Nilai pengembalian

Mengembalikan string yang ditentukan oleh parameter s dalam huruf besar.

Contoh

str = 'halo dunia'                                                                                                                                                                                   
say(upper(str)) 

Output:

HELLO WORLD

lower

Tabel berikut menampilkan detail tentang fungsi ini.

Fitur

Deskripsi

Sintaks

lower(s)

Deskripsi

Mengonversi string menjadi huruf kecil.

Parameter

s: string yang ingin Anda konversi.

Nilai pengembalian

Mengembalikan string yang ditentukan oleh parameter s dalam huruf kecil.

Contoh

str = 'HALO DUNIA'
say(lower(str))

Output:

hello world

len

Tabel berikut menampilkan detail tentang fungsi ini.

Fitur

Deskripsi

Sintaks

len(s)

Deskripsi

Memeriksa panjang string.

Parameter

s: string yang ingin Anda ukur.

Nilai pengembalian

Mengembalikan panjang string yang ditentukan oleh parameter s. Tipe data: integer.

Contoh

str = 'halo dunia'
say(len(str)) // Mengembalikan panjang str. Di sini adalah 11.

byte

Tabel berikut menampilkan detail tentang fungsi ini.

Fitur

Deskripsi

Sintaks

byte(c)

Deskripsi

Memeriksa nilai ASCII dari sebuah karakter.

Parameter

c: karakter yang nilainya ASCII ingin Anda periksa. Anda hanya dapat menentukan satu karakter.

Nilai pengembalian

Mengembalikan nilai ASCII dari karakter yang ditentukan. Tipe data: numerik.

Contoh

say(byte('a'))
say(byte('A'))

Output:

97
65

match_re

Tabel berikut menampilkan detail tentang fungsi ini.

Fitur

Deskripsi

Sintaks

match_re(s, p [, o])

Deskripsi

Menggunakan mesin Perl Compatible Regular Expressions (PCRE) untuk pencocokan ekspresi reguler. Untuk informasi lebih lanjut, lihat Sintaks PCRE.

Parameter

  • s: string yang ingin Anda cocokkan. Tipe data: string.

  • p: ekspresi reguler untuk pencocokan. Tipe data: string.

  • o: mesin ekspresi reguler. Tipe data: string. Parameter ini opsional.

    • nilai kosong: menentukan bahwa fungsi ini peka terhadap huruf besar/kecil.

    • i: menentukan bahwa fungsi ini tidak peka terhadap huruf besar/kecil.

Nilai pengembalian

Jika string cocok dengan ekspresi reguler, true dikembalikan. Jika tidak, false dikembalikan.

Contoh

str = 'Hello'
// Cocokan tepat dengan "Hello"
say(match_re(str, 'Hello'))
// Cocokan tanpa memperhatikan huruf besar/kecil dengan "Hello" 
say(match_re(str, 'hello', i))
// Cocokkan string apa pun yang diakhiri dengan huruf "l"
say(match_re(str, '.*l$'))

Output:

true
true
false

capture_re

Tabel berikut menampilkan detail tentang fungsi ini.

Fitur

Deskripsi

Sintaks

capture_re(s, p [,init])

Deskripsi

Menangkap kecocokan dari string dan mengembalikan substring yang cocok. Untuk informasi lebih lanjut tentang PCRE, lihat Sintaks PCRE.

Parameter

  • s: string yang ingin Anda cocokkan. Tipe data: string.

  • p: ekspresi reguler untuk pencocokan. Tipe data: string.

  • init: posisi untuk memulai pencocokan, dihitung dari 1. Tipe data: integer.

Nilai pengembalian

Mengembalikan substring yang cocok dalam tipe kamus jika string cocok dengan ekspresi reguler. Jika tidak, kamus kosong dikembalikan.

Contoh

pcs = capture_re($request_uri,'^/([^/]+)/([^/]+)([^?]+)\?(.*)')
sec1 = get(pcs, 1)
sec2 = get(pcs, 2)
sec3 = get(pcs, 3)
if or(not(sec1), not(sec2), not(sec3)) {
   add_rsp_header('X-TENGINE-ERROR', 'auth gagal - set uri yang diperlukan hilang')
   exit(403)
}
digest = md5(concat(sec1, sec3))
if ne(digest, sec2) {
    add_rsp_header('X-TENGINE-ERROR', 'auth gagal - digest tidak valid')
    exit(403)
}                                                                                                                                                      

Contoh respons

"X-TENGINE-ERROR:auth gagal - set uri yang diperlukan hilang"

gsub_re

Tabel berikut menampilkan detail tentang fungsi ini.

Fitur

Deskripsi

Sintaks

gsub_re(subject, regex, replace [,option])

Deskripsi

Mengganti semua kecocokan dari string dan mengembalikan string setelah penggantian. Untuk informasi lebih lanjut tentang PCRE, lihat Sintaks PCRE.

Parameter

  • subject: string yang ingin Anda cocokkan. Tipe data: string.

  • regex: ekspresi reguler. Tipe data: string.

  • replace: string untuk penggantian. Tipe data: string.

    Anda dapat menentukan parameter replace menggunakan substring yang cocok.

    • $0: menentukan semua substring yang cocok dengan regex.

    • $N: menentukan substring yang cocok dengan subekspresi berkurung ke-N () dari regex.

  • option: mesin ekspresi reguler. Tipe data: string. Parameter ini opsional.

Nilai pengembalian

Mengganti semua substring yang cocok dengan parameter regex yang ditentukan dalam parameter subject yang ditentukan dengan yang ditentukan oleh parameter replace dan mengembalikan string setelah penggantian.

Contoh

subject = 'Halo, Es'
regex = '([a-zA-Z])[a-z]+'
replace = '[$0,$1]'
add_rsp_header('X-DEBUG-GSUB-RE', gsub_re(subject, regex, replace))                                                                                                                                    

Contoh respons

"X-DEBUG-GSUB-RE:[Halo,H], [Es,E]"

split

Tabel berikut menampilkan detail tentang fungsi ini.

Fitur

Deskripsi

Sintaks

split(s [,sep])

Deskripsi

Memisahkan string menjadi array substring dan mengembalikan array tersebut.

Parameter

  • s: string yang ingin Anda pisahkan. Tipe data: string.

  • sep: pemisah yang digunakan untuk memisahkan string. Tipe data: string.

Nilai pengembalian

Mengembalikan array pasangan kunci-nilai dalam tipe kamus. Nilai parameter key adalah angka yang dimulai dari 1, misalnya, [1]=xx dan [2]=y. Jika sep dibiarkan kosong, string dipisahkan oleh karakter spasi putih. Karakter spasi putih mencakup karakter spasi dan karakter tab (\t).

Contoh

if $arg_from {
    t = split($arg_from, ',')
    if get(t, 1) {
        say(concat('[1]=', get(t, 1)))
    }
    if get(t, 2) {
        say(concat('[2]=', get(t, 1)))
    }
}                                                                                                                                

Permintaan:

http://www.example.com?from=xx1,xx2,xx3

Output:

[1]=xx1
[2]=xx1

split_as_key

Tabel berikut menampilkan detail tentang fungsi ini.

Fitur

Deskripsi

Sintaks

split_as_key(s [,sep])

Deskripsi

Memisahkan string menjadi array substring dan mengembalikan array tersebut.

Parameter

  • s: string yang ingin Anda pisahkan. Tipe data: string.

  • sep: pemisah yang digunakan untuk memisahkan string. Tipe data: string.

Nilai pengembalian

Mengembalikan parameter respons dengan cara yang sama seperti fungsi split(). Namun, parameter key diberi nama setelah setiap elemen yang dipisahkan: Elemen 1 -> Elemen 2.

Contoh

def echo_each(k, v, u) {
    s = concat(k, '=', v, ' u=', get(u, 1))
    say(s) 
}
if $arg_from {
    t = split_as_key($arg_from, ',')
    foreach(t, echo_each, ['hi,dsl'])
}                                                                                                                                  

Permintaan:

http://www.example.com?from=xx1,xx2,xx3

Output:

xx2=xx2 u=hi,dsl
xx1=xx1 u=hi,dsl
xx3=xx3 u=hi,dsl

tohex

Tabel berikut menampilkan detail tentang fungsi ini.

Fitur

Deskripsi

Sintaks

tohex(s)

Deskripsi

Mengonversi string menjadi string heksadesimal.

Parameter

s: string yang ingin Anda konversi.

Nilai pengembalian

Mengembalikan string heksadesimal yang dikonversi dari string yang ditentukan oleh parameter s.

Contoh

digest = sha1('xxxx')
add_rsp_header('X-DSL-TOHEX', tohex(digest))

Contoh respons

"X-DSL-TOHEX: 4ad583af22c2e7d40c1c916b2920299155a46464"

tostring

Tabel berikut menampilkan detail tentang fungsi ini.

Fitur

Deskripsi

Sintaks

tostring(a)

Deskripsi

Mengonversi data dari tipe apa pun menjadi string.

Parameter

a: data yang ingin Anda konversi. Tipe data: tipe apa pun.

Nilai pengembalian

Mengembalikan string yang dikonversi dari nilai yang ditentukan oleh parameter a.

Contoh

say(tostring(123))

Output:

123

tochar

Tabel berikut menampilkan detail tentang fungsi ini.

Fitur

Deskripsi

Sintaks

tochar(n1, n2, ...)

Deskripsi

  • Mengonversi satu atau lebih bilangan bulat internal (nilai ASCII) menjadi string. Misalnya, 48 sesuai dengan karakter "0".

  • Panjang string yang dikembalikan didasarkan pada jumlah parameter yang ditentukan.

Parameter

nX: bilangan bulat yang ingin Anda konversi. Anda dapat menentukan satu atau lebih bilangan bulat.

Nilai pengembalian

Mengembalikan string yang dikonversi dari bilangan bulat.

Contoh

say(tochar(97))
say(tochar(65))

Output:

a
A

reverse

Tabel berikut menampilkan detail tentang fungsi ini.

Fitur

Deskripsi

Sintaks

reverse(str)

Deskripsi

Membalikkan string.

Parameter

str: string yang ingin Anda balikkan.

Nilai pengembalian

Mengembalikan string yang dibalik dari string yang ditentukan.

Contoh

say(reverse('halo'))

Output:

olleh

find

Tabel berikut menampilkan detail tentang fungsi ini.

Fitur

Deskripsi

Sintaks

string.find (s, substr, pos)

Deskripsi

Mencari substring dalam string tertentu.

Parameter

  • s: string yang ingin Anda cari.

  • substr: substring yang ingin Anda cari.

  • pos: posisi di mana pencarian dimulai. Tipe data: numerik. Parameter ini opsional. Anda dapat menentukan bilangan bulat negatif. Nilai defaultnya adalah 1.

Nilai pengembalian

  • Mengembalikan array jika substring yang ditentukan ditemukan.

    • Indeks 1 menunjukkan posisi di mana pencarian dimulai.

    • Indeks 2 menunjukkan posisi di mana pencarian berakhir.

  • Mengembalikan array kosong jika substring yang ditentukan tidak ditemukan.

Contoh

str = 'halo dunia'
say(concat('r posisi awal: ',get(find(str, 'r'), 1)))
say(concat('r posisi akhir: ',get(find(str, 'r'), 2)))
say(concat('rl posisi awal: ',get(find(str, 'rl'), 1)))
say(concat('rl posisi akhir: ',get(find(str, 'rl'), 2)))

Output:

r posisi awal: 9
r posisi akhir: 9
rl posisi awal: 9
rl posisi akhir: 10

format

Tabel berikut menampilkan detail tentang fungsi ini.

Fitur

Deskripsi

Sintaks

format(fmt, ···)

Deskripsi

Memformat nilai satu atau lebih parameter. String format adalah parameter pertama, yang harus menentukan string. String format mengikuti spesifikasi parameter sprintf yang digunakan oleh fungsi dalam bahasa pemrograman C.

Sintaks string format adalah: %[parameter][flag][field width][.precision]specifier.

  • %%: mencetak tanda persen literal (%).

  • %c: mengonversi bilangan bulat menjadi karakter ASCII.

  • %d: mengonversi bilangan bulat menjadi angka desimal.

  • %f: mengonversi bilangan presisi-N menjadi angka floating point.

  • %o: mengonversi bilangan bulat menjadi angka oktal.

  • %s: mengonversi bilangan bulat menjadi string.

  • %x: mengonversi bilangan bulat menjadi angka heksadesimal dalam huruf kecil.

  • %X: mengonversi bilangan bulat menjadi angka heksadesimal dalam huruf besar.

Parameter

  • fmt: tipe string. Parameter ini menentukan string format.

  • Jumlah variabel parameter: tipe apa pun.

Nilai pengembalian

Mengembalikan string ACSII.

Contoh

say(concat('format:', format('%%%s$%.2s$%s$%c$%d$%2.2f$%.2o$%x$%X', 'format', 3.1415926, true, 95, 3.1415926, 3.1415926, 3.1415926, 10, 10)))

Output:

format:%format$3.$true$_$3$3.14$03$a$A

tobin

Tabel berikut menampilkan detail tentang fungsi ini.

Fitur

Deskripsi

Sintaks

tobin(str)

Deskripsi

Mengonversi string heksadesimal menjadi string ASCII.

Parameter

str: string heksadesimal yang ingin Anda konversi. Tidak peka terhadap huruf besar/kecil.

Nilai pengembalian

Mengembalikan string ACSII.

Contoh

say(concat('tobin:', tobin('2F2F')))

Output:

tobin://

trim

Tabel berikut menampilkan detail tentang fungsi ini.

Fitur

Deskripsi

Sintaks

trim(s, [, loc])

Deskripsi

Menghapus semua karakter spasi putih sebelum atau sesudah string yang ditentukan oleh parameter s, dan mengembalikan string dengan karakter spasi putih yang ditentukan dihapus.

Parameter

  • s: string.

  • loc: nilai defaultnya adalah both. Parameter ini opsional. Nilai yang valid:

    • both: menghapus karakter spasi putih sebelum dan sesudah string.

    • left: hanya menghapus karakter spasi putih sebelum string.

    • right: hanya menghapus karakter spasi putih setelah string.

Nilai pengembalian

Mengembalikan string dengan karakter spasi putih yang ditentukan dihapus.

Contoh

say(concat('trim():', trim(' abcd ')))
say(concat('trim(left):', trim(' abcd', 'left')))
say(concat('trim(right):', trim('abcd ', 'right')))

Output:

trim():abcd
trim(left):abcd
trim(right):abcd