Lua安装及简单使用

Lua简介

Lua是一个简洁、轻量、可扩展的程序设计语言,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。

Lua安装

1
2
3
4
5
6
curl -R -O http://www.lua.org/ftp/lua-5.3.3.tar.gz
tar zxf lua-5.3.3.tar.gz
cd lua-5.3.3
make macosx
sudo make install
lua -v

Lua使用

1
2
3
4
5
6
#交互式编程
lua
print("Hello World")
#脚本式编程
vi one.lua
lua one.lua

one.lua

1
2
3
4
5
6
7
--单行注释
print("单行注释")
--[[
多行注释
多行注释
--]]

print("多行注释")

Lua字符串操作

1.字符串截取

1
string.sub(s,i,j)

2.字符串拼接

1
string1..string2..string3

3.字符串匹配

1
string.gsub(mainString,findString,replaceString,num)

4.字符串长度

1
string.len(arg)

5.字符串反转

1
string.reverse(arg)

6.字符串转为大写字母

1
string.upper(argument)

7.字符串转为小写字母

1
string.lower(argument)

Lua在Nginx和OpenResty中的使用

可以参考另一篇博客OpenResty安装、配置与使用

1.Nginx配置示例1:

1
2
3
4
5
6
7
8
9
10
11
12
lua_need_request_body on;
set $resp_body "";
body_filter_by_lua '
local maxlen = 1000
ngx.ctx.buffered = ngx.ctx.buffered or ""
if #ngx.ctx.buffered < maxlen then
ngx.ctx.buffered = ngx.ctx.buffered .. string.sub(ngx.arg[1], 1, maxlen - #ngx.ctx.buffered)
end
if ngx.arg[2] then
ngx.var.resp_body = ngx.ctx.buffered
end
';

2.Nginx配置示例2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
body_filter_by_lua '
req_var = ngx.var.request
req_method = string.match(req_var, "POST")
if req_method == "POST" then
local maxlen = 1000
ngx.ctx.buffered = ngx.ctx.buffered or ""
if #ngx.ctx.buffered < maxlen then
ngx.ctx.buffered = ngx.ctx.buffered .. string.sub(ngx.arg[1], 1, maxlen - #ngx.ctx.buffered)
end
if ngx.arg[2] then
ngx.var.resp_body = ngx.ctx.buffered
end
end
';

八宝粥 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!