2012-02-11 75 views
0

我能夠抓取網頁的頁面,但我想知道什麼是最簡單的方法來轉換這些鏈接可以在各種格式,成爲一個完全成熟的網址。例如:PHP:將html中的url轉換爲完整的url?

如果我刮:www.mysite.com/some/place/in/space.html

而且我得到以下網址:

../img.jpg 
img.jpg 
../../bla.jpg 
inc/bla.jpg 
/
./ 

他們應該下定決心

www.mysite.com/some/place/img.jpg 
www.mysite.com/some/place/in/img.jpg 
www.mysite.com/some/bla.jpg 
www.mysite.com/some/place/in/inc/bla.jpg 
www.mysite.com/some/place/in/ 
www.mysite.com/some/place/in/ 

是否有一個函數可以用於所有情況,還是我需要編碼的東西?

回答

1

我使用此功能履帶我寫了很久以前的事:http://codepad.org/1VxMECNj

電話與主機前置的功能:

relativeUrl('http://host/dir/dir2/../../file.html'); 
//> returns http://host/file.html 
+0

請注意,我的函數autofix urls是這樣的:'http:// host /../../ file.html' :) – dynamic 2012-02-11 16:32:56

0

你可以在網址前面加上www.mysite.com/some/place/in/ .. www.mysite.com/some/place/in/../img.jpg應該可以解決我的問題。

0

你可以做一個正則表達式替換的絕對URL相對鏈接:

$data = preg_replace('#(href|src)="([^:"]*)("|(?:(?:%20|\s|\+)[^"]*"))#', '$1="' . $site_url . '$2$3', $data);