如何在Lua中显示Apr.Table的内容?
解决Apr.Table遍历问题
核心问题:
r.headers_in是Apache mod_lua提供的Apr.Table类型(C实现的用户数据),并非Lua原生表,因此无法用pairs()直接遍历,也不能直接调用对象自身的方法。正确遍历方式:使用
apr.table.each迭代器,这是mod_lua专门用于遍历Apr.Table的API:
apr.table.each(r.headers_in, function(k, v) log_file:write("Header: ", k, " = ", v, "\n") end)
- 单个Header快速访问:如果仅需获取特定Header,可直接通过索引访问,语法和Lua表一致:
local host_header = r.headers_in["Host"] log_file:write("Host: ", host_header, "\n")
- 常见误区说明:
- 禁止用
pairs()或ipairs()遍历Apr.Table,这两个函数仅支持Lua原生表。 - Apr.Table的操作方法都在
apr.table模块下,不能通过对象自身调用(比如不能写r.headers_in:elts())。
- 禁止用
内容的提问来源于stack exchange,提问作者codinator
相关产品推荐
相关产品推荐

