2012-02-24 63 views
6

Tôi đang sử dụng cURL để trả về dữ liệu từ các trang web bên ngoài. Làm thế nào tôi có thể trả lại URL cơ sở của một trang web với PHP?Cách lấy URL cơ sở của trang web bên ngoài

Ví dụ, tôi có URL này: http://www.bestbuy.com/site/Insignia%26%23153%3B+-+55%22+Class+/+1080p+/+120Hz+/+LCD+HDTV/2009148.p?id=1218317000232&skuId=2009148

Tôi chỉ muốn http://www.bestbuy.com

Cảm ơn!

Trả lời

13

 

$url = "http://www.bestbuy.com/site/Insignia%26%23153%3B+-+55%22+Class+/+1080p+/+120Hz+/+LCD+HDTV/2009148.p?id=1218317000232&skuId=2009148"; 
echo ""; 
print_r(parse_url($url));

//Would give you Array ( [scheme] => http [host] => www.bestbuy.com [path] => /site/Insignia%26%23153%3B+-+55%22+Class+/+1080p+/+120Hz+/+LCD+HDTV/2009148.p [query] => id=1218317000232&skuId=2009148 )

0

REGEX :)

sử dụng cái này (không chắc chắn nếu nó sẽ làm việc trên php nhưng bạn có thể sửa đổi nó một chút nếu cần thiết)

/^((?:http:\/\/|https:\/\/)?(?:.+?))(?:\s*$|\/.*$)/

do đó tùy chọn này sẽ khớp với http: // hoặc https: // (? Ký sau \/\/)) rồi sẽ trận đấu lười biếng cho đến khi hai đầu của dòng hoặc / nếu tồn tại

và url của bạn mong muốn là trong nhóm chụp đầu tiên

bắt buộc, bạn có thể bỏ qua: ở khắp mọi nơi trong regex và bạn có thể nhận

  • đầu tiên: đầy đủ url
  • thứ hai: params
  • thứ ba: giao thức
  • thứ tư: miền
Các vấn đề liên quan