- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建允许的参数的白名单,以便表中提供的任何不在我的白名单表中的参数都将从参数表中删除。
local args = {
"99",
"lollypop",
"tornado",
"catid",
"CATID",
"filter_mediaType",
"one",
"10",
}
local args_whitelist = {
"beforeafter",
"catid",
"childforums",
"display",
"element_id",
"element_type",
"exactname",
"filter_mediaType",
"filter_order",
"filter_order_Dir",
"filter_search",
"filter_tag",
"format",
"id",
"Itemid",
"layout",
"limit",
"limitstart",
"messageid",
"more",
"option",
"order",
"ordering",
"quality",
"query",
"recently",
"recip",
"reply_id",
"return",
"searchdate",
"searchf",
"searchphrase",
"searchuser",
"searchword",
"sortby",
"start",
"task",
"tmpl",
"token",
"view",
"component",
"path",
"extension"
}
--[[
Do something here to eliminate and remove unwanted arguments from table
]]
--args[key] = nil --remove the argument from the args table
print(args) --[[ Output i want based of my whitelist of allowed arguments only
catid
filter_mediaType
]]
如何让我的代码根据我的白名单表检查 args 表,然后运行删除函数以从 args 表中删除垃圾参数。
最佳答案
我建议更改您的白名单
以进行更简单的检查。正如 Nicol Bolas 所指出的,这可以通过在运行时反转表来实现快速检查和易于维护。
反转表会用字符串索引的数字填充whitelist
表,从而允许将 if 语句检查为 args 值的简单索引。
然后,您可以循环遍历args
列表并检查arg是否在白名单
上。如果它出现在白名单
上,则将该值添加到新列表中,我将在我的示例中使用approved
。检查完所有 args
后,您可以设置 args =roved
这会清除表中任何未批准的值。
local args = {
"99",
"lollypop",
"tornado",
"catid",
"CATID",
"filter_mediaType",
"one",
"10",
"beforeafter",
}
local function invert_table(target)
local t = {}
for k,v in pairs(target) do
t[v] = k
end
return t
end
local args_whitelist = invert_table(args_whitelist)
local approved = {}
for _,v in pairs(args) do
if args_whitelist[v] then
approved[#approved + 1] = v
end
end
args = approved
关于卢阿 |仅表参数的白名单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54539548/
我正在尝试创建允许的参数的白名单,以便表中提供的任何不在我的白名单表中的参数都将从参数表中删除。 local args = { "99", "lollypop", "tornado", "catid"
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, over
我正在为我的游戏引擎开发脚本层。目前我正在使用脚本作为类,向名为 new 的“表”添加一个方法。该函数基本上创建了该类的实例化副本。当需要脚本实例时,我从 C API 调用此函数。 function
我想为 Lua 数组中的每个字符串元素存储一些值。 -- Emulating different Browsers local user_agent = { "Mozilla/5.0 (Windows
我打算用 C++ 编写一个跨平台项目,它将运行一个 Lua 引擎。我想为该项目编写主程序,包括 Lua 中的 GUI。为了让它更容易,我想用 HTML 编写 GUI,因此我需要一个额外的库,希望是基于
我目前正在将 Luajit 与 Lua 5.1 一起使用,并且正在尝试在 Lua C API 中注册一个名为“Wait”的函数。该函数的主要目的是暂停当前线程。 示例用法: print("Workin
我是一名优秀的程序员,十分优秀!