另一个问题(Lua中的字符串到表)询问了如何将格式化为表的字符串转换为字符串,给出的答案是使用字符串loadstring
或load
将其转换为块然后执行。
我还有一个程序可以下载文件,该文件的格式类似于lua表http.request
,就像其他问题一样:
yourTable = http.request("http://www.somesite.com/table.txt")
print(yourTable)
--yourTable is a string that is formatted like a lua table, but not a table:
a={
b = {
c = 1,
d = {
e = {
},
},
},
}
functionThatExpectsATable(yourTable) --throws error because yourTable is a string
尽管可以使用load
或loadstring
获取所需的表,但这是一个潜在的安全漏洞,因为我的程序在设计上允许用户输入任何URL来加载其表数据。如果他们指向lua代码而不是lua格式的表,则将执行该代码。
如何在不执行的情况下将“表格格式的字符串”转换为表格?
这是Penlight库中的示例实现:
https://github.com/stevedonovan/Penlight/blob/master/lua/pl/pretty.lua
见pretty.read
功能
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句