9 Star 34 Fork 14

starjun007/openstar

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
body.lua 1.23 KB
一键复制 编辑 原始数据 按行查看 历史
local ngx_var = ngx.var
local ngx_unescape_uri = ngx.unescape_uri
local next_ctx = ngx.ctx.next_ctx or {}
local type = type
local ipairs = ipairs
if type(next_ctx.replace_Mod) ~= "table" then
return
end
local token_dict = ngx.shared.token_dict
local optl = require("optl")
-- 返回内容的替换使用 ngx.re.gsub 后续会更新用户可指定替换函数(如 ngx.re.sub)
local function ngx_2(reps,str_all)
for _,v in ipairs(reps) do
local tmp3 = optl.ngx_find(v[3])
if v[2] == "" then
str_all = ngx.re.gsub(str_all,v[1],tmp3)
else
str_all = ngx.re.gsub(str_all,v[1],tmp3,v[2])
end
end
ngx.arg[1] = str_all
token_dict:delete(token_tmp)
end
-- ngx.ctx.next_ctx.request_guid 一定要保证存在
local token_tmp = next_ctx.request_guid
if ngx.arg[1] ~= '' then -- 请求正常
local chunk = token_dict:get(token_tmp)
if not chunk then
chunk = ngx.arg[1]
token_dict:set(token_tmp,chunk,15)
else
chunk = chunk..ngx.arg[1]
token_dict:set(token_tmp,chunk,15)
end
end
local tmp_replace_mod = next_ctx.replace_Mod
if ngx.arg[2] then
ngx_2(tmp_replace_mod.replace_list,token_dict:get(token_tmp))
else
ngx.arg[1] = nil
end
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Lua
1
https://gitee.com/starjun007_admin/git_openstar.git
[email protected]:starjun007_admin/git_openstar.git
starjun007_admin
git_openstar
openstar
master

搜索帮助