全部产品
Search
文档中心

ApsaraVideo VOD:Fungsi string

更新时间:Jul 02, 2025

Topik ini menjelaskan sintaks, deskripsi, parameter, dan nilai pengembalian dari fungsi string, serta menyertakan contoh penggunaannya.

substr

Tabel berikut menampilkan detail tentang fungsi ini.
FiturDeskripsi
Sintakssubstr(s, i, j)
DeskripsiMengekstrak bagian dari sebuah string.
Parameter
  • s: string yang ingin Anda ekstrak.
  • 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 pengembalianMengembalikan 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, ' is .m3u8'))
}

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

concat

Tabel berikut menampilkan detail tentang fungsi ini.
FiturDeskripsi
Sintaksconcat(s1, ...)
DeskripsiMenggabungkan string.
ParameterString yang ingin Anda gabungkan. Anda dapat menentukan satu atau lebih string. Nilai numerik didukung.
Nilai pengembalianMengembalikan string yang telah digabungkan.
Contoh
//Catatan: Dua metode yang digunakan untuk menentukan apakah file adalah file M3U8.
if eq(substr($uri, -5, -1), '.m3u8') {
    say(concat($uri, ' is .m3u8'))
}

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

upper

Tabel berikut menampilkan detail tentang fungsi ini.
FiturDeskripsi
Sintaksupper(s)
DeskripsiMengonversi string menjadi huruf besar.
Parameters: string yang ingin Anda konversi.
Nilai pengembalianMengembalikan string yang ditentukan oleh parameter s dalam huruf besar.
Contoh
mystr = 'Hello, Dsl'                                                                                                                                                                                   
say(upper(mystr))                                                                                                                                                                                      
say(lower(mystr)) 
//Output:
//HELLO,DSL
//hello, dsl

lower

Tabel berikut menampilkan detail tentang fungsi ini.
FiturDeskripsi
Sintakslower(s)
DeskripsiMengonversi string menjadi huruf kecil.
Parameters: string yang ingin Anda konversi.
Nilai pengembalianMengembalikan string yang ditentukan oleh parameter s dalam huruf kecil.
Contoh
mystr = 'Hello, Dsl'                                                                                                                                                                                   
say(upper(mystr))                                                                                                                                                                                      
say(lower(mystr)) 
//Output:
//HELLO,DSL
//hello, dsl

len

Tabel berikut menampilkan detail tentang fungsi ini.
FiturDeskripsi
Sintakslen(s)
DeskripsiMemeriksa panjang string.
Parameters: string yang ingin Anda ukur.
Nilai pengembalianMengembalikan panjang string yang ditentukan oleh parameter s. Tipe data: integer.
Contoh
//Catatan: Dua metode yang digunakan untuk menentukan apakah file adalah file M3U8.
if eq(substr($uri, -5, -1), '.m3u8') {
    say(concat($uri, ' is .m3u8'))
}

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

byte

Tabel berikut menampilkan detail tentang fungsi ini.
FiturDeskripsi
Sintaksbyte(c)
DeskripsiMemeriksa nilai ASCII dari sebuah karakter.
Parameterc: karakter yang nilainya ASCII ingin Anda periksa. Anda hanya dapat menentukan satu karakter.
Nilai pengembalianMengembalikan 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.
FiturDeskripsi
Sintaksmatch_re(s, p [, o])
DeskripsiMenggunakan 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 pengembalianJika string cocok dengan ekspresi reguler, true dikembalikan. Jika tidak, false dikembalikan.
Contoh
url = concat('http://', $host, $uri)
m1 = match_re(url, 'http://.*\.example\.com/.*', 'i')
m2 = match_re(url, '^http://.*\.aliyundoc\.com\.cn/.*\.d\.html(\?.*)?$')
m3 = match_re(url, '^http://.*.demo.aliyundoc/.*\.d\.html(\?.*)?$')
m4 = match_re(url, '^http://.*\.aliyundoc\.com\.cn/zt_d/')
m5 = match_re(url, '^http://learn.aliyundoc.com.cn/zt_d/we2015/?$')
m6 = match_re($args, 'from=wap1$')
m7 = match_re($args, 'from=comos1$')

if and(m1, or(m2, m3), not(m4), not(m5), or(not(m6), not(m7))) {                                                                                                                                       
    add_rsp_header('USER-DEFINED-1', 'hit1')                                                                                                                                                           
    add_rsp_header('USER-DEFINED-2', 'hit2')  
}                                                                                                                                                      

capture_re

Tabel berikut menampilkan detail tentang fungsi ini.
FiturDeskripsi
Sintakscapture_re(s, p [,init])
DeskripsiMenangkap kecocokan dari sebuah 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 pengembalianMengembalikan 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 failed - missing necessary uri set')
   exit(403)
}
digest = md5(concat(sec1, sec3))
if ne(digest, sec2) {
    add_rsp_header('X-TENGINE-ERROR', 'auth failed - invalid digest')
    exit(403)
}                                                                                                                                                      

gsub_re

Tabel berikut menampilkan detail tentang fungsi ini.
FiturDeskripsi
Sintaksgsub_re(subject, regex, replace [,option])
DeskripsiMengganti semua kecocokan dari sebuah 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 pengembalianMengganti 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 = 'Hello, Es'
regex = '([a-zA-Z])[a-z]+'
replace = '[$0,$1]'
add_rsp_header('X-DEBUG-GSUB-RE', gsub_re(subject, regex, replace))         
//Output:
//X-DEBUG-GSUB-RE: [Hello,H], [Es,E]                                                                                                                                      

split

Tabel berikut menampilkan detail tentang fungsi ini.
FiturDeskripsi
Sintakssplit(s [,sep])
DeskripsiMembagi string menjadi array substring dan mengembalikan array tersebut.
Parameter
  • s: string yang ingin Anda bagi. Tipe data: string.
  • sep: pemisah yang digunakan untuk membagi string. Tipe data: string.
Nilai pengembalianMengembalikan 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 dibagi 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)))
    }
}         
//Request: ?from=xx1,xx2,xx3 
//Response: [1]=xx1
//[2]=xx1                                                                                                                                   

split_as_key

Tabel berikut menampilkan detail tentang fungsi ini.
FiturDeskripsi
Sintakssplit_as_key(s [,sep])
DeskripsiMembagi string menjadi array substring dan mengembalikan array tersebut.
Parameter
  • s: string yang ingin Anda bagi. Tipe data: string.
  • sep: pemisah yang digunakan untuk membagi string. Tipe data: string.
Nilai pengembalianMengembalikan parameter respons dengan cara yang sama seperti fungsi split(). Namun, parameter key dinamai setelah setiap elemen yang dibagi: 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'])
}    
//Request: ?from=xx1,xx2,xx3 
//Response: xx2=xx2 u=hi,dsl
//xx1=xx1 u=hi,dsl
//xx3=xx3 u=hi,dsl                                                                                                                                   

tohex

Tabel berikut menampilkan detail tentang fungsi ini.
FiturDeskripsi
Sintakstohex(s)
DeskripsiMengonversi string menjadi string heksadesimal.
Parameters: string yang ingin Anda konversi.
Nilai pengembalianMengembalikan string heksadesimal yang dikonversi dari string yang ditentukan oleh parameter s.
Contoh
digest = sha1('xxxx')
add_rsp_header('X-DSL-TOHEX', tohex(digest))    

//Catatan: Header respons ditambahkan.
//X-DSL-TOHEX: 4ad583af22c2e7d40c1c916b2920299155a46464                                                                                                                                     

tostring

Tabel berikut menampilkan detail tentang fungsi ini.
FiturDeskripsi
Sintakstostring(a)
DeskripsiMengonversi data dari tipe apa pun menjadi string.
Parametera: data yang ingin Anda konversi. Tipe data: tipe apa pun.
Nilai pengembalianMengembalikan string yang dikonversi dari nilai yang ditentukan oleh parameter a.
Contoh
s = tostring(123)
add_rsp_header('X-DSL-TOSTRING', s)  

//Catatan: Header respons ditambahkan.
//X-DSL-TOSTRING: 123                                                                                                                            

tochar

Tabel berikut menampilkan detail tentang fungsi ini.
FiturDeskripsi
Sintakstochar(n1, n2, ...)
Deskripsi
  • Mengonversi satu atau lebih bilangan bulat internal (nilai ASCII) menjadi string. Contohnya, 48 sesuai dengan karakter "0".
  • Panjang string yang dikembalikan didasarkan pada jumlah parameter yang ditentukan.
ParameternX: bilangan bulat yang ingin Anda konversi. Anda dapat menentukan satu atau lebih bilangan bulat.
Nilai pengembalianMengembalikan string yang dikonversi dari bilangan bulat.
Contoh
add_rsp_header('X-DSL-TOCHAR', tochar(97))
add_rsp_header('X-DSL-TOCHAR', tochar(97, 98), true)
//Output: Header respons ditambahkan.
//X-DSL-TOCHAR: a
//X-DSL-TOCHAR: ab

if $arg_filename {
    hn = 'Content-Disposition'
    add_rsp_header('Content-Disposition', concat('attachment;filename=', tochar(34), filename, tochar(34)))
    add_rsp_header(hn, hv)
}     
//Output: Header respons ditambahkan.
//Content-Disposition: attachment;filename="Nilai dari parameter filename"                                                                                                                                    

reverse

Tabel berikut menampilkan detail tentang fungsi ini.
FiturDeskripsi
Sintaksreverse(str)
DeskripsiMembalikkan sebuah string.
Parameterstr: string yang ingin Anda balikkan.
Nilai pengembalianMengembalikan string yang dibalik dari string yang ditentukan.
Contoh
say(reverse('hello'))
Output:
#olleh

find

Tabel berikut menampilkan detail tentang fungsi ini.
FiturDeskripsi
Sintaksstring.find (s, substr, pos)
DeskripsiMencari 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 default 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 = 'hello dsl'
 add_rsp_header('string-find()-start', tostring(get(find(str, 'dsl'), 1)))
 str = 'hello dsl 12'
 add_rsp_header('string-find()-end', tostring(get(find(str, 'dsl'), 2)))
 str = 'hello dsl'
 add_rsp_header('string-find()-tail-start', tostring(get(find(str, 'dsl', -6), 1)))
 str = 'hello dsl 12'
 add_rsp_header('string-find()-tail-end', tostring(get(find(str, 'dsl', -6), 2)))
Output:
string-find()-start:7
string-find()-end:9
string-find()-tail-start:7
string-find()-tail-end:9

format

Tabel berikut menampilkan detail tentang fungsi ini.
FiturDeskripsi
Sintaksformat(fmt, ···)
DeskripsiMemformat 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 angka 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 pengembalianMengembalikan 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.
FiturDeskripsi
Sintakstobin(str)
DeskripsiMengonversi string heksadesimal menjadi string ASCII.
Parameterstr: string heksadesimal yang ingin Anda konversi. Tidak peka terhadap huruf besar/kecil.
Nilai pengembalianMengembalikan string ACSII.
Contoh
say(concat('tobin:', tobin('2F2F')))
Output:
tobin://

trim

Tabel berikut menampilkan detail tentang fungsi ini.
FiturDeskripsi
Sintakstrim(s, [, loc])
DeskripsiMenghapus semua karakter spasi putih sebelum atau setelah string yang ditentukan oleh parameter s, dan mengembalikan string dengan karakter spasi putih yang ditentukan dihapus.
Parameter
  • s: string.
  • loc: nilai default adalah both. Parameter ini opsional. Nilai 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 pengembalianMengembalikan 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