美文网首页
LUA $1的读写问题

LUA $1的读写问题

作者: hi_lua | 来源:发表于2016-08-08 13:54 被阅读0次

整理一下:

Nginx 正则表达式捕获组变量$1、$2、$3等,也可以通过这个界面读取,方式为通过ngx.var[1]、ngx.var[2]、ngx.var[3]等。

以上是ngx_lua api说明中的摘录。

按api说明 应该是能取到值的。但写代码去取值 没取到,代码是这样写的:

location = /sumc {

    set $1 9;

    set $2 10;

    content_by_lua '

        ngx.say(ngx.var[1])

    ';

}

运行结果:nil

一直没取到值 ,搞不清楚原因

location = /sumb {

    set $bb 99;

    content_by_lua_block {

        ngx.say(ngx.var.bb)

    }

}

运行结果:99

这种写法是定了一个具体的参数,是能输出正确结果到网页的。

问题的关键在于:

sumb中的写法,我们实质上是设置一个变量并赋值。所以可以读到。而$1,它是利用正则表达式去匹配参数,第一个参数就是$1。(第一个)参数本身是可以读写的,但$1是规则,它代表参数列表中的第一个参数。规则本身不能写,只能读。故正确写法如下:

location ~ /sumc/(9)/(10) {

    #set $1 9;

    #set $2 10;

    content_by_lua '

    ngx.say(ngx.var[1])

    ngx.say(ngx.var[2])

    ';

}

更多信息请参考:

ngx_lua API

agentzh 的 Nginx 教程

相关文章

  • LUA $1的读写问题

    整理一下: Nginx 正则表达式捕获组变量$1、$2、$3等,也可以通过这个界面读取,方式为通过ngx.var[...

  • Lua中的CAPI概述

    头文件lua.h: Lua提供的基础函数,包括创建Lua环境,调用Lua函数,读写Lua环境中的全局变量,以及注册...

  • C Lua API-栈

    简介 C API 是一组能使用C代码与Lua交互的函数。其中包括读写Lua全局变量、调Lua函数、运行一段Lua代...

  • 9. Redisson源码剖析-读写锁

    一、读锁 读写锁的意义: 1, redis分布式锁,主要就是在理解他里面的lua脚本的逻辑,逻辑全部都在lua脚本...

  • Cocos2dx 文件的读写

    Cocos2dx-lua 文件读写例子: 这里用了cocos官方提供的 FileUtils 去读写文件的,他还提供...

  • lua 读写文件

  • lua protobuf 获取pb长度为0的bug

    项目使用 protoc-gen-lua 来生成lua的pb在lua中调用。但遇到如下问题: 1.获取pb长度为0,...

  • lua部分使用问题及格式化

    1,table index is nil lua 表明table的下标是nil,有问题,需更改下标 2,lua格式...

  • 四种Excel文件读写的问题场景模式

    1.学习分解不同的Excel文件读写问题,熟悉四种Excel文件读写的问题场景模式。①单元格读写、②按行读写、③按...

  • Luat实例教程:系统文件读写

    本教程目的:开发者可以将数据保存在系统里,即使断电数据也不会丢失。 Lua文件读写的API使用方法查阅Lua io...

网友评论

      本文标题:LUA $1的读写问题

      本文链接:https://www.haomeiwen.com/subject/oykrsttx.html