我正在尝试通过循环更改此http://www.exampleofurl.com/search?q=4&e=25;i=8&b=2的每个参数,但我得到了这个输出。
http://www.exampleofurl.com/search?q=changed&e=25;i=8&b=2
http://www.exampleofurl.com/search?q=4&e=changed;i=8&b=2
http://www.exampleofurl.com/search?q=4&e=25;i=changed&b=2
http://www.exampleofurl.com/search?q=4&e=changed5;i=8&b=changed
当我的参数为空时,我得到这个奇怪的输出。
search?changedqchanged=changed4changed&changedechanged=changed2changed5changed;changedichanged=changed8changed&changedbchangedochangedochanged=changed
这是我的代码。
require 'uri'
url = "http://www.exampleofurl.com/search?q=4&e=25;i=8&b=2"
uri = URI.parse(url)
params = {}
t = "changed"
q = uri.query
p = q.split(/[&;]/) if q != nil
p.each do |part|
k,v = part.split('=', 2)
params[k] = v
t.each do |tr|
uri.query = q.gsub(params[k], tr)
end
end
有人可以告诉我哪里出了问题,最有效的方法是什么?
我想要这样的输出。
q=changed&e=25;i=8&b=2
q=4&e=changed;i=8&b=2
q=4&e=25;i=changed&b=2
q=4&e=25;i=8&b=changed
提前致谢。
马可