1

リモート画像の絶対 URL の取得に問題があります。私が今していることはこれです:

foreach($html->find('img') as $e){
$path = parse_url($e->src, PHP_URL_PATH);
$absolute = realpath($path);
    if($e->src==$path){
    echo '<img class="pic" src=' . $absolute . '/><br/>';
    }

}

このコードは、単純な html dom プロジェクトを使用して記述されています。アイデアは、サーバー上にないため、元のコーディングで相対 URL を含む画像を表示できないということです。

リモートイメージの絶対パスを解決する方法を知っている人はいますか?

4

3 に答える 3

1

ベース ドメインと相対 URL ルートを取得する必要があります。

そのため、画像がページ yoursite.com/slideshow/4/view で見つかったが、相対的に ./../../images/435.jpg を指している場合は、パスを結合するだけです。

それ以外の場合、画像がドメインのルートを指している場合 (正規表現を使用して最初の文字が / であるかどうかを確認できます)、yoursite.com だけを使用してそのパスを文字列に追加できます。

http://php.net/manual/en/function.parse-url.phpを見て、URL を解析してサイト ホスト (そのホストに対する相対ページ) に入れます。

于 2009-12-09T13:43:28.660 に答える
0

これらの画像をフィルタリングしている場所のアドレスがわかっている場合は、それを src プロパティが返すものに追加してみませんか?

于 2009-12-09T13:43:54.617 に答える
0

これを (サイト全体のように) 頻繁に行っている場合は、wget の背後にある力を見ることができます。

オプションの 1 つは、IIRC という URL を再構築することです。

-k --convert-links

wgetを見てみる価値があるかもしれません。

于 2009-12-09T16:10:50.810 に答える