人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

php4において、引数で与えられた相対URLを絶対URLに変換する関数、または公開されているソースはありませんか?
.netのUriクラスのように、引数として与えれた絶対URLと相対URLから相対URLの絶対URLを取得する方法を探しています。
(ベースとなるHtmlからのリンク先を絶対URLで取得したい)

●質問者: lains_you
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:.NET HTML URI URL クラス
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ●
●0ポイント

relapathで絶対URLを求めることができます。

(勘違いしておりましたら、申し訳ありません。)

◎質問者からの返答

relapathでは、実行環境のサーバでの絶対パスが取得されると思います。

そうではなくて、他のサーバに存在するコンテンツの絶対URLを取得したいのです。例えば、http://dailynews.yahoo.co.jp/fc/上でhref="/fc/domestic/index.html"となっている相対URLを絶対URL"http://dailynews.yahoo.co.jp/fc/domestic/index.html"で取得したいのです。


2 ● ito-yu
●115ポイント

<?php

$base = 'http://dailynews.yahoo.co.jp/fc/';

$href = '/fc/domestic/index.html';

echo getAbsPath($base, $href);

function getAbsPath($base, $href){

$url_info = parse_url($base);

$bdir = (substr($url_info['path'], -1) == '/') ? $url_info['path'] : dirname($url_info['path']).'/';

if(ereg('^https?://', $href)){

$path = $href;

}elseif(substr($href, 0, 1) == '/'){

$path = $url_info['scheme'].'://'.$url_info['host'].$href;

}else{

$path = $url_info['scheme'].'://'.$url_info['host'].$bdir.$href;

}

return $path;

}

?>


パスの途中に .. とかあるとしくじるかもしれませんが、それは正規表現で取り除けるんじゃないでしょうか。

私もこんなコードを利用してリバースプロクシ的な他力本願サイトを構築しようかと考え(後略

◎質問者からの返答

ありがとうございます。

私は単にサーバ側にコンテンツを収集させようと思っただけなのですが、なかなか面倒です。素直にwgetを使った方が良いような気がしてきましたorz

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ