gpt4 book ai didi

parsing - 在 Lua 中从 URL 中解析参数

转载 作者:行者123 更新时间:2023-12-04 02:21:19 25 4
gpt4 key购买 nike

我有一个 URL 并想从中解析它的参数,例如:

function unescape (s)
s = string.gsub(s, "+", " ")
s = string.gsub(s, "%%(%x%x)", function (h)
return string.char(tonumber(h, 16))
end)
return s
end

function parseurl (s,param)
for k, v in string.gmatch( s, "([^&=?]+)=([^&=?]+)" ) do
--t[k] = v
if k == param then
--print (k.." "..v)
return unescape(v)
end
end

s = "http://www.page.com/link.php uname=Hans+Testmann&uemail=myemail%40gmail.com&utext=Now+this+is+working+great.%0D%0A++&mdt=1#&mydays:themeupload"s

然后我会调用它并得到结果 -->

parseurl (s, "uname")      --> "Hans Testmann"
parseurl (s, "uemail") --> "myemail@gmail.com"
parseurl (s, "utext") --> "Now this is working great"

我已经修复了很多并且似乎可以工作,但你能看看如何改进吗?

最佳答案

我会在一个表中返回所有参数并像这样使用:

function urldecode(s)
s = s:gsub('+', ' ')
:gsub('%%(%x%x)', function(h)
return string.char(tonumber(h, 16))
end)
return s
end

function parseurl(s)
s = s:match('%s+(.+)')
local ans = {}
for k,v in s:gmatch('([^&=?]-)=([^&=?]+)' ) do
ans[ k ] = urldecode(v)
end
return ans
end

t = parseurl(s)
print(t.uname ) --> 'Hans Testmann'
print(t.uemail) --> 'myemail@gmail.com'
print(t.utext ) --> 'Now this is working great'

关于parsing - 在 Lua 中从 URL 中解析参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28916182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com