function var_dump(data, max_level, prefix) if type(prefix) ~= "string" then prefix = "" end if type(data) ~= "table" then dump_html(prefix .. tostring(data)) else dump_html(tostring(data)) if max_level ~= 0 then local prefix_next = prefix .. " " dump_html(prefix .. "{") for k,v in pairs(data) do dump_html(prefix_next .. k .. " = ") if type(v) ~= "table" or (type(max_level) == "number" and max_level <= 1) then dump_html(v) else if max_level == nil then var_dump(v, nil, prefix_next) else var_dump(v, max_level - 1, prefix_next) end end end dump_html(prefix .. "}") end end end function dump_html(str) if str ~= nil then ngx.header.content_type = "text/html" ngx.say(str) end end