我想找到這個URL擴展.html
:如何使用Ruby 1.8.7從URL獲得擴展名?
http://testasp.vulnweb.com/Templatize.asp?item=html/about.html
我想找到這個URL擴展.html
:如何使用Ruby 1.8.7從URL獲得擴展名?
http://testasp.vulnweb.com/Templatize.asp?item=html/about.html
通用的答案(我不是一個紅寶石的傢伙) -
String.substring(String.lastIndexOf("."), String.length);
Thanx for replay,但我必須遍歷URI數組,其中一些URI可能不包含任何路徑.. .so這種類型的代碼可能會引發一些錯誤 – 2012-01-11 06:38:14
String queryString = uri.split(「?」); queryString.substring(...); [上面的代碼];放入for循環;將工作。但是發佈一些你之前嘗試過的代碼。修改代碼很容易。 – Acn 2012-01-11 06:44:46
我已經試過代碼需要'uri'需要'路徑名'路徑名=路徑名。新(鏈接)擴展=路徑名。文本名....它是在紅寶石... – 2012-01-11 06:47:39
也許是這樣的:
URI.parse(url).query[/\.\w+/]
thanx爲您的重播它的作品.... – 2012-01-11 06:55:56
別客氣。不要忘記標記這個答案是正確的,並將它投票:) – pguardiario 2012-01-11 08:55:05
Ruby有URI模塊,它是標準配置的一部分,加上Addressable寶石:
url = 'http://testasp.vulnweb.com/Templatize.asp?item=html/about.html'
require 'uri'
uri = URI.parse(url)
queries = Hash[uri.query.split('&').map{ |q| q.split('=') }]
puts queries['item']
require "addressable/uri"
uri = Addressable::URI.parse(url)
puts uri.query_values['item']
雙方將輸出:
html/about.html
運行時。
URI很方便,但是可尋址功能非常強大且功能全面。如果我需要做很多URL解析或操作,則可以使用Addressable。
一旦你有html/about.html
可以提取擴展幾個方面:
path = 'html/about.html'
path[/(\..+)$/, 1] # => ".html"
path.split('.').last # => "html"
File.extname(path) # => ".html"
注意使用split
刪除.
所以它需要再次前置到html
。
我已經嘗試過類URI以及類路徑名在紅寶石....但我仍然沒有從URI獲得.html擴展名...我可以很容易地從這個URI找到.asp擴展名,但我不想那... – 2012-01-11 06:26:27
發表一些代碼。 – 2012-01-11 06:27:17
require'uri' require'pathname' pathname = Pathname.new(link) extension = pathname.extname – 2012-01-11 06:32:12