2012-02-11 8 views
0

URLのページをスクラップすることができますが、これらのリンクが含まれているさまざまな形式を完全な本格的なURLに変換する最も簡単な方法は何ですか。PHP:htmlのURLを本格的なURLに変換しますか?

私はこすり場合:たとえば

www.mysite.com/some/place/in/space.htmlそして、私は、以下のURLを取得:

../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は次のようなURLになっています: 'http:// host /../../ file.html' :) – dynamic

0

URLの前にwww.mysite.com/some/place/in/を追加することができます。www.mysite.com/some/place/in/../img.jpgは私が解決するはずです。

0

あなたは絶対URLと相対リンクを交換するREGEXを行うことができ:

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