Tous les produits
Search
Centre de documentation

Edge Security Acceleration:Fonctions de chaîne

Dernière mise à jour :Aug 12, 2026

Cette rubrique détaille la syntaxe, la description, les paramètres et les valeurs de retour des fonctions de chaîne. Elle fournit également des exemples d'utilisation pour chacune de ces fonctions.

substr

Le tableau suivant présente les détails de cette fonction.

FonctionnalitéDescription
Syntaxesubstr(s, i, j)
DescriptionExtrait une partie d'une chaîne de caractères.
Paramètre
  • s : la chaîne source à extraire.
  • i : la position de début d'extraction dans la chaîne source, en commençant le comptage à 1. La valeur -1 désigne le caractère le plus à droite de la chaîne. Type de données : entier.
  • j : la position de fin d'extraction dans la chaîne source, en commençant le comptage à 1. La valeur -1 désigne le caractère le plus à droite de la chaîne. Type de données : entier.
Valeur de retourRenvoie la sous-chaîne s[i, j] extraite de la chaîne source spécifiée par s.
Exemple
//Note: The two methods that are used to determine whether a file is an M3U8 file.
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

Le tableau ci-dessous décrit le fonctionnement de cette fonction.

FonctionnalitéDescription
Syntaxeconcat(s1, ...)
DescriptionConcatène plusieurs chaînes de caractères.
ParamètreLes chaînes à concaténer. Vous pouvez spécifier une ou plusieurs chaînes. Les valeurs numériques sont prises en charge.
Valeur de retourRenvoie la chaîne résultant de la concaténation.
Exemple
//Note: The two methods that are used to determine whether a file is an M3U8 file.
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

Consultez le tableau suivant pour obtenir des informations détaillées sur cette fonction.

FonctionnalitéDescription
Syntaxeupper(s)
DescriptionConvertit une chaîne en majuscules.
Paramètres : la chaîne à convertir.
Valeur de retourRenvoie la chaîne spécifiée par le paramètre s convertie en majuscules.
Exemple
mystr = 'Hello, Dsl'                                                                                                                                                                                   
say(upper(mystr))                                                                                                                                                                                      
say(lower(mystr)) 
//Output:
//HELLO,DSL
//hello, dsl

lower

Les caractéristiques de cette fonction sont décrites dans le tableau ci-après.

FonctionnalitéDescription
Syntaxelower(s)
DescriptionConvertit une chaîne en minuscules.
Paramètres : la chaîne à convertir.
Valeur de retourRenvoie la chaîne spécifiée par le paramètre s convertie en minuscules.
Exemple
mystr = 'Hello, Dsl'                                                                                                                                                                                   
say(upper(mystr))                                                                                                                                                                                      
say(lower(mystr)) 
//Output:
//HELLO,DSL
//hello, dsl

len

Ce tableau résume les spécifications de la fonction.

FonctionnalitéDescription
Syntaxelen(s)
DescriptionDétermine la longueur d'une chaîne de caractères.
Paramètres : la chaîne dont vous souhaitez mesurer la longueur.
Valeur de retourRenvoie la longueur de la chaîne indiquée par le paramètre s. Type de données : entier.
Exemple
//Note: The two methods that are used to determine whether a file is an M3U8 file.
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

Vous trouverez ci-dessous les détails concernant cette fonction.

FonctionnalitéDescription
Syntaxebyte(c)
DescriptionObtient la valeur ASCII d'un caractère.
Paramètrec : le caractère dont vous voulez connaître la valeur ASCII. Un seul caractère peut être spécifié.
Valeur de retourRenvoie la valeur ASCII du caractère spécifié. Type de données : numérique.
Exemple
say(byte('a'))
say(byte('A'))
//Output: 97
//65

match_re

FonctionnalitéDescription
Syntaxematch_re(s, p [, o])
DescriptionVérifie si une chaîne correspond à une expression régulière via le moteur Perl Compatible Regular Expressions (PCRE). Pour plus d'informations, consultez la page Syntaxe des expressions régulières PCRE.
Paramètre
  • s : la chaîne source. Type : chaîne.
  • p : l'expression régulière. Type : chaîne.
  • o : une chaîne optionnelle définissant les options du moteur.
    • Si ce paramètre est omis, la correspondance respecte la casse.
    • S'il est défini sur i, la correspondance ne tient pas compte de la casse.
Valeur de retourRenvoie true si la chaîne correspond au modèle, et false dans le cas contraire.
Exemple
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

Le tableau suivant expose les propriétés de cette fonction.

FonctionnalitéDescription
Syntaxecapture_re(s, p [,init])
DescriptionCapture les correspondances d'une chaîne et renvoie les sous-chaînes associées. Pour en savoir plus sur PCRE, reportez-vous à la syntaxe PCRE.
Paramètre
  • s : la chaîne à faire correspondre. Type de données : chaîne.
  • p : l'expression régulière utilisée pour la correspondance. Type de données : chaîne.
  • init : la position de départ pour la recherche de correspondance, en comptant à partir de 1. Type de données : entier.
Valeur de retourRenvoie les sous-chaînes correspondantes sous forme de dictionnaire si la chaîne valide l'expression régulière. Sinon, un dictionnaire vide est retourné.
Exemple
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

Voici les informations techniques relatives à cette fonction.

FonctionnalitéDescription
Syntaxegsub_re(subject, regex, replace [,option])
DescriptionRemplace toutes les occurrences correspondant au motif dans une chaîne et renvoie la chaîne modifiée. Pour plus de détails sur PCRE, voir la syntaxe PCRE.
Paramètre
  • subject : la chaîne cible pour la recherche. Type de données : chaîne.
  • regex : l'expression régulière. Type de données : chaîne.
  • replace : la chaîne de remplacement. Type de données : chaîne.
    Il est possible d'utiliser les sous-chaînes capturées dans le paramètre replace.
    • $0 : représente l'intégralité de la sous-chaîne correspondant à regex.
    • $N : désigne la sous-chaîne correspondant à la Nième sous-expression entre parenthèses () de regex.
  • option : les options du moteur d'expressions régulières. Type de données : chaîne. Ce paramètre est facultatif.
Valeur de retourSubstitue toutes les sous-chaînes correspondant au paramètre regex dans le paramètre subject par celles définies dans le paramètre replace, puis renvoie la chaîne résultante.
Exemple
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

Lisez le tableau ci-dessous pour comprendre cette fonction.

FonctionnalitéDescription
Syntaxesplit(s [,sep])
DescriptionDécoupe une chaîne en un tableau de sous-chaînes et retourne ce tableau.
Paramètre
  • s : la chaîne à découper. Type de données : chaîne.
  • sep : le séparateur utilisé pour le découpage. Type de données : chaîne.
Valeur de retourRenvoie un tableau de paires clé-valeur sous forme de dictionnaire. La valeur du paramètre key est un nombre débutant à 1, par exemple [1]=xx et [2]=y. Si sep n'est pas renseigné, le découpage s'effectue selon les caractères d'espacement (espaces et tabulations \t).
Exemple
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

Cette section détaille le comportement de la fonction.

FonctionnalitéDescription
Syntaxesplit_as_key(s [,sep])
DescriptionFractionne une chaîne en un tableau de sous-chaînes et retourne le résultat.
Paramètre
  • s : la chaîne à fractionner. Type de données : chaîne.
  • sep : le délimiteur servant au fractionnement. Type de données : chaîne.
Valeur de retourProduit des paramètres de réponse similaires à ceux de la fonction split(). Toutefois, le paramètre key prend le nom de chaque élément fractionné selon le schéma : Element 1 -> Element 2.
Exemple
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

Référez-vous au tableau suivant pour les spécificités de cette fonction.

FonctionnalitéDescription
Syntaxetohex(s)
DescriptionTransforme une chaîne en sa représentation hexadécimale.
Paramètres : la chaîne à transformer.
Valeur de retourRenvoie la chaîne hexadécimale issue de la conversion du paramètre s.
Exemple
digest = sha1('xxxx')
add_rsp_header('X-DSL-TOHEX', tohex(digest))    

//Note: A response header is added.
//X-DSL-TOHEX: 4ad583af22c2e7d40c1c916b2920299155a46464                                                                                                                                     

tostring

Les détails de cette fonction figurent dans le tableau ci-après.

FonctionnalitéDescription
Syntaxetostring(a)
DescriptionConvertit une donnée de n'importe quel type en chaîne de caractères.
Paramètrea : la donnée à convertir. Type de données : quelconque.
Valeur de retourRenvoie la chaîne obtenue après conversion de la valeur du paramètre a.
Exemple
s = tostring(123)
add_rsp_header('X-DSL-TOSTRING', s)  

//Note: A response header is added.
//X-DSL-TOSTRING: 123                                                                                                                            

tochar

Examinez le tableau suivant pour maîtriser cette fonction.

FonctionnalitéDescription
Syntaxetochar(n1, n2, ...)
Description
  • Traduit un ou plusieurs entiers internes (valeurs ASCII) en une chaîne. Par exemple, 48 correspond au caractère « 0 ».
  • La longueur de la chaîne retournée dépend du nombre de paramètres fournis.
ParamètrenX : les entiers à convertir. Il est possible d'en spécifier un ou plusieurs.
Valeur de retourRenvoie la chaîne générée à partir des entiers.
Exemple
add_rsp_header('X-DSL-TOCHAR', tochar(97))
add_rsp_header('X-DSL-TOCHAR', tochar(97, 98), true)
//Output: A response header is added.
//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: A response header is added.
//Content-Disposition: attachment;filename="The value of the filename parameter"                                                                                                                                    

reverse

Les attributs de cette fonction sont listés ci-dessous.

FonctionnalitéDescription
Syntaxereverse(str)
DescriptionInverse l'ordre des caractères d'une chaîne.
Paramètrestr : la chaîne à inverser.
Valeur de retourRenvoie la chaîne inversée.
Exemple
say(reverse('hello'))
Résultat :
#olleh

find

Ce tableau synthétise les informations essentielles sur la fonction.

FonctionnalitéDescription
Syntaxestring.find (s, substr, pos)
DescriptionRecherche une sous-chaîne au sein d'une chaîne donnée.
Paramètre
  • s : la chaîne dans laquelle effectuer la recherche.
  • substr : la sous-chaîne recherchée.
  • pos : l'index où débute la recherche. Type de données : numérique. Paramètre optionnel acceptant un entier négatif. La valeur par défaut est 1.
Valeur de retour
  • Un tableau est renvoyé si la sous-chaîne est trouvée.
    • L'index 1 indique la position de début de l'occurrence.
    • L'index 2 indique la position de fin de l'occurrence.
  • Un tableau vide est retourné en l'absence de correspondance.
Exemple
 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)))
Résultat :
string-find()-start:7
    string-find()-end:9
    string-find()-tail-start:7
    string-find()-tail-end:9

format

Analysez le tableau ci-dessous pour comprendre l'usage de cette fonction.

FonctionnalitéDescription
Syntaxeformat(fmt, ···)
DescriptionFormate les valeurs d'un ou plusieurs paramètres. Le premier argument doit obligatoirement être une chaîne de formatage. Cette chaîne suit la norme du paramètre sprintf utilisé dans le langage C.
La structure d'une chaîne de format est la suivante : %[paramètre][indicateur][largeur de champ][.précision]spécificateur.
  • %% : affiche un signe pourcentage littéral (%).
  • %c : convertit des entiers en caractères ASCII.
  • %d : convertit des entiers en nombres décimaux.
  • %f : convertit des nombres à précision N en nombres à virgule flottante.
  • %o : convertit des entiers en nombres octaux.
  • %s : convertit des valeurs en chaînes de caractères.
  • %x : convertit des entiers en nombres hexadécimaux en minuscules.
  • %X : convertit des entiers en nombres hexadécimaux en majuscules.
Paramètre
  • fmt : de type chaîne. Définit la chaîne de formatage.
  • Nombre variable de paramètres : de tout type.
Valeur de retourRenvoie une chaîne ASCII.
Exemple
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)))
Résultat :
format:%format$3.$true$_$3$3.14$03$a$A

tobin

Le tableau suivant explicite le rôle de cette fonction.

FonctionnalitéDescription
Syntaxetobin(str)
DescriptionConvertit une chaîne hexadécimale en chaîne ASCII.
Paramètrestr : la chaîne hexadécimale à convertir. La casse n'a aucune incidence.
Valeur de retourRenvoie une chaîne ASCII.
Exemple
say(concat('tobin:', tobin('2F2F')))
Résultat :
tobin://

trim

Voici une description technique complète de la fonction.

FonctionnalitéDescription
Syntaxetrim(s, [, loc])
DescriptionSupprime les espaces situés avant ou après la chaîne définie par le paramètre s, puis retourne la chaîne nettoyée.
Paramètre
  • s : la chaîne concernée.
  • loc : la valeur par défaut est both. Ce paramètre est optionnel. Valeurs valides :
    • both : élimine les espaces en début et en fin de chaîne.
    • left : supprime uniquement les espaces précédant la chaîne.
    • right : supprime uniquement les espaces suivant la chaîne.
Valeur de retourRetourne la chaîne débarrassée des caractères d'espacement ciblés.
Exemple
say(concat('trim():', trim(' abcd ')))
say(concat('trim(left):', trim(' abcd ', 'left')))
say(concat('trim(right):', trim(' abcd ', 'right')))
Résultat :
trim():abcd
    trim(left):abcd
    trim(right): abcd