2011-11-27 13 views
10

मैं की तरहआधार यूआरएल प्राप्त करने के लिए यूआरएल का विश्लेषण कैसे करें? - रेल 3.1

http://www.1800contacts.com/productlist.aspx?dl=P&source=cj&ac=8.2.0007

यूआरएल कैसे पार्स कर सकते हैं और केवल

http://www.1800contacts.com

मिल सकता है?

पी एस। कुछ यूआरएल में सबडोमेन इत्यादि हैं इसलिए मैं यहां regexps का उपयोग नहीं कर सकता। उपयोग करने के लिए

उत्तर

20

कोशिश 'URI' पुस्तकालय:

require 'uri' 
address = 'http://www.1800contacts.com/productlist.aspx?dl=P&source=cj&ac=8.2.0007' 
uri = URI.parse(address) 
puts "#{uri.scheme}://#{uri.host}" # => http://www.1800contacts.com 
+1

वहाँ एक समाधान इस तरह के http://www.example.com के रूप में गैर मानक पोर्ट, शामिल करने के लिए है : 8080/आप-found-me.php? – sutch

+1

निश्चित रूप से। पता 'पता =' http: //example.com: 8080/you-found-me.php 'में बदलें और यह आपको निम्नलिखित देता है: 'uri.port # => 8080' – WarHog

1

2 वैकल्पिक तरीकों

uri = URI.parse(url); uri.path = ''; uri.query = nil; uri.to_s 
url.split('/')[0,3].join('/') 
संबंधित मुद्दे

 संबंधित मुद्दे