醜い複雑なURL文字列の配列があり、「example」などのユーザーが入力した特定の検索用語をから分離したいと思いますhttp://google.com/search/things/q="example"
。
+
場合によっては、用語を区切る検索があり、ユーザー指定のクエリの最後にがあります&
。
たくさんグーグルした後でも、どこから始めればいいのかわからない。私を始めるのに助けがあれば大歓迎です!
醜い複雑なURL文字列の配列があり、「example」などのユーザーが入力した特定の検索用語をから分離したいと思いますhttp://google.com/search/things/q="example"
。
+
場合によっては、用語を区切る検索があり、ユーザー指定のクエリの最後にがあります&
。
たくさんグーグルした後でも、どこから始めればいいのかわからない。私を始めるのに助けがあれば大歓迎です!
CGI.parse(URI.parse(url).query)
例:
>> CGI.parse(URI.parse("http://google.com/?foo=bar&baz=hello").query)
=> {"foo"=>["bar"], "baz"=>["hello"]}
cgi
もちろん、uri
最初に要求することを忘れないでください。
あなたはおそらくこのようなものが欲しいでしょう:http://codefol.io/posts/9-How-Does-Rack-Parse-Query-Params-With-parse-nested-query
Rackベースのフレームワーク(SinatraやRailsなど)を使用している場合は、すでにこれを無料で利用できます。
Addressable :: URI gemとRuby独自のURIモジュールはどちらも、必要なことを実行できます。または、独自のURIを簡単に作成することもできます。
Addressable :: URIは非常に強力で、URI仕様に準拠しています。PRY内からの使用例を次に示します。
[9] (pry) main: 0> uri = Addressable::URI.parse('http://google.com/search/things?q="example"')
=> #<Addressable::URI:0x80ec33a0 URI:http://google.com/search/things?q="example">
[10] (pry) main: 0> uri.query
=> "q=\"example\""
[11] (pry) main: 0> uri.query_values
=> {"q"=>"\"example\""}
特に便利なのはquery_values
、ハッシュを返すメソッドです。
ただし、同じことを行うものを簡単に書くことができます。
Hash['http://google.com/search/things?q="example"'.split('?').last.split('&').map{ |q| q.split('=') }]
=> {"q"=>"\"example\""}
Addressable :: URIとURIの利点は、URLを操作しなくても操作できる他の多くの機能を提供することです。