array_join

`array_join` 指令将数组类型的变量的元素使用指定的分隔符组合成单个字符串。

语法array_join [to=$target_var];
默认值none
上下文http, server, location, if in server, if in location
参数2-3

说明

array_join 指令在 NGINX 中用于将数组变量的各个元素连接成一个由用户定义定界符分隔的单个字符串。该指令是 'Array-typed variables for NGINX' 模块的一部分,该模块使得在 NGINX 配置中使用类似数组的数据结构成为可能。它允许用户将数组变量转换为可用于后续处理或输出的组合字符串。

要使用 array_join,必须指定一个将放置在数组元素之间的分隔字符或字符串。可选地,你可以指定一个目标变量来存储生成的字符串。指令被调用时,会迭代指定数组变量的元素并按指定分隔符将它们连接成单个字符串。

在需要从列表值创建 SQL 查询或其他基于字符串的条件的场景中,此指令特别有用。例如,你可以将一组文件名或其它标识符收集到数组中,然后使用 array_join 构造数据库条件或类似的输出字符串。注意,该指令应放在适当的上下文中,例如在 httpserverlocation 块内,并且也支持在条件块中嵌套使用。

配置示例

location /foo {
    array_split ',' $arg_files to=$array;
    array_join ' or ' $array to=$sql_condition;
    echo "select * from files where $sql_condition";
}

在使用 array_join 之前,请确保数组变量已初始化并填充;否则会得到空字符串。

在未定义数组变量的上下文中直接使用 array_join 会导致配置错误。

注意数组大小,因为过大的数组可能生成过长的拼接字符串,从而可能引发性能问题。

← 返回所有指令