All Products
Search
Document Center

ApsaraVideo VOD:Fungsi String

Last Updated:Jul 11, 2026

Fungsi string mendukung ekstraksi, penggabungan (concatenation), konversi huruf besar/kecil, pencocokan ekspresi reguler, pemisahan (splitting), dan pemformatan nilai string.

substr

Feature Description
Syntax substr(s, i, j)
Description Mengekstraksi bagian dari sebuah string.
Parameter
  • s: string yang ingin Anda ekstraksi.
  • i: posisi awal ekstraksi dalam string sumber, dihitung dari 1. Nilai -1 menunjukkan karakter paling kanan dari string. Tipe data: integer.
  • j: posisi akhir ekstraksi dalam string sumber, dihitung dari 1. Nilai -1 menunjukkan karakter paling kanan dari string. Tipe data: integer.
Return value Mengembalikan substring s[i, j] dari string sumber s.
Example
//Catatan: Dua metode yang digunakan untuk menentukan apakah suatu file merupakan 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

Feature Description
Syntax concat(s1, ...)
Description Menggabungkan string.
Parameter String yang ingin Anda gabungkan. Anda dapat menentukan satu atau lebih string. Nilai numerik didukung.
Return value Mengembalikan string hasil penggabungan.
Example
//Catatan: Dua metode yang digunakan untuk menentukan apakah suatu file merupakan 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

Feature Description
Syntax upper(s)
Description Mengonversi string menjadi huruf kapital.
Parameter s: string yang ingin Anda konversi.
Return value Mengembalikan string s dalam huruf kapital.
Example
mystr = 'Hello, Dsl'                                                                                                                                                                                   
say(upper(mystr))                                                                                                                                                                                      
say(lower(mystr)) 
//Output:
//HELLO,DSL
//hello, dsl

lower

Feature Description
Syntax lower(s)
Description Mengonversi string menjadi huruf kecil.
Parameter s: string yang ingin Anda konversi.
Return value Mengembalikan string s dalam huruf kecil.
Example
mystr = 'Hello, Dsl'                                                                                                                                                                                   
say(upper(mystr))                                                                                                                                                                                      
say(lower(mystr)) 
//Output:
//HELLO,DSL
//hello, dsl

len

Feature Description
Syntax len(s)
Description Menanyakan panjang suatu string.
Parameter s: string yang ingin Anda ukur.
Return value Mengembalikan panjang string s. Tipe data: integer.
Example
//Catatan: Dua metode yang digunakan untuk menentukan apakah suatu file merupakan 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

Feature Description
Syntax byte(c)
Description Menanyakan nilai ASCII suatu karakter.
Parameter c: karakter yang nilai ASCII-nya ingin Anda tanyakan. Anda hanya dapat menentukan satu karakter.
Return value Mengembalikan nilai ASCII dari karakter yang ditentukan. Tipe data: numeric.
Example
say(byte('a'))
say(byte('A'))
//Output: 97
//65

match_re

Item Description
Syntax match_re(s, p [, o]).
Description Memeriksa apakah suatu string cocok dengan ekspresi reguler. Fungsi ini menggunakan mesin ekspresi reguler PCRE. Untuk informasi selengkapnya, lihat sintaks PCRE.
Parameter
  • s: string. String target.
  • p: string. Ekspresi reguler.
  • o: string. Opsional. Menentukan opsi untuk mesin ekspresi reguler.
    • Jika dihilangkan, pencocokan bersifat case-sensitive.
    • Jika diatur ke i, pencocokan bersifat case-insensitive.
Return value Mengembalikan true jika string cocok dengan pola, dan false jika tidak.
Example
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

Feature Description
Syntax capture_re(s, p [,init])
Description Menangkap kecocokan suatu string dan mengembalikan substring yang cocok. Untuk informasi selengkapnya 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 awal pencocokan, dihitung dari 1. Tipe data: integer.
Return value Mengembalikan substring yang cocok sebagai dictionary jika pola cocok, atau dictionary kosong jika tidak.
Example
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

Feature Description
Syntax gsub_re(subject, regex, replace [,option])
Description Mengganti semua kecocokan suatu string dan mengembalikan string setelah penggantian. Untuk informasi selengkapnya 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 dengan 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.
Return value Mengembalikan string setelah mengganti semua kecocokan regex dalam subject dengan replace.
Example
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

Feature Description
Syntax split(s [,sep])
Description 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.
Return value Mengembalikan array pasangan kunci-nilai dalam tipe dictionary. Nilai parameter key adalah angka yang dimulai dari 1, misalnya, [1]=xx dan [2]=y. Jika sep dikosongkan, string dipisahkan berdasarkan karakter whitespace. Karakter whitespace mencakup spasi dan karakter tab (\t).
Example
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

Feature Description
Syntax split_as_key(s [,sep])
Description 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.
Return value Mengembalikan parameter respons dengan cara yang sama seperti fungsi split(). Namun, parameter key dinamai berdasarkan setiap elemen hasil pemisahan: Element 1 -> Element 2.
Example
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

Feature Description
Syntax tohex(s)
Description Mengonversi string menjadi string heksadesimal.
Parameter s: string yang ingin Anda konversi.
Return value Mengembalikan string heksadesimal yang dikonversi dari s.
Example
digest = sha1('xxxx')
add_rsp_header('X-DSL-TOHEX', tohex(digest))    

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

tostring

Feature Description
Syntax tostring(a)
Description Mengonversi data tipe apa pun menjadi string.
Parameter a: data yang ingin Anda konversi. Tipe data: tipe apa pun.
Return value Mengembalikan string yang dikonversi dari nilai a.
Example
s = tostring(123)
add_rsp_header('X-DSL-TOSTRING', s)  

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

tochar

Feature Description
Syntax tochar(n1, n2, ...)
Description
  • Mengonversi satu atau lebih bilangan bulat internal (nilai ASCII) menjadi string. Misalnya, 48 berkorespondensi 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.
Return value Mengembalikan string yang dikonversi dari bilangan bulat.
Example
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 parameter filename"                                                                                                                                    

reverse

Feature Description
Syntax reverse(str)
Description Membalik urutan string.
Parameter str: string yang ingin Anda balik.
Return value Mengembalikan string yang telah dibalik.
Example
say(reverse('hello'))
Output:
#olleh

find

Feature Description
Syntax string.find (s, substr, pos)
Description Mencari substring dalam string tertentu.
Parameter
  • s: string yang ingin Anda cari.
  • substr: substring yang ingin Anda cari.
  • pos: posisi tempat pencarian dimulai. Tipe data: numeric. Parameter ini opsional. Anda dapat menentukan bilangan bulat negatif. Nilai default adalah 1.
Return value
  • Mengembalikan array jika substring yang ditentukan ditemukan.
    • Indeks 1 menunjukkan posisi awal pencarian.
    • Indeks 2 menunjukkan posisi akhir pencarian.
  • Mengembalikan array kosong jika substring yang ditentukan tidak ditemukan.
Example
 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

Feature Description
Syntax format(fmt, ···)
Description Memformat nilai sesuai dengan string format. String format adalah parameter pertama dan harus berupa string. String format ini mengikuti spesifikasi sprintf dari 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 kapital.
Parameter
  • fmt: tipe string. Parameter ini menentukan string format.
  • Jumlah parameter variabel: tipe apa pun.
Return value Mengembalikan string ASCII.
Example
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

Feature Description
Syntax tobin(str)
Description Mengonversi string heksadesimal menjadi string ASCII.
Parameter str: string heksadesimal yang ingin Anda konversi. Tidak case-sensitive.
Return value Mengembalikan string ASCII.
Example
say(concat('tobin:', tobin('2F2F')))
Output:
tobin://

trim

Feature Description
Syntax trim(s, [, loc])
Description Menghapus karakter whitespace sebelum dan/atau setelah string.
Parameter
  • s: string.
  • loc: nilai default adalah both. Parameter ini opsional. Nilai yang valid:
    • both: menghapus karakter whitespace sebelum dan setelah string.
    • left: hanya menghapus karakter whitespace sebelum string.
    • right: hanya menghapus karakter whitespace setelah string.
Return value Mengembalikan string yang telah dipangkas.
Example
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