0

ユーザーが入力したURLを受け入れ、そのアドレスのすべての画像を表示するページを作成しようとしています。私はこれを機能させていますが、ページの画像srcが次のように記述されている場合:

/image/picture.jpg

これではなく:

http://www.site.com/image/picture.jpg

次に、サーバーに対してローカルではないため、ページに表示されません。私が知りたいのは、そのファイルの場所に直接リンクする簡単な方法はありますか?

私のコードは以下の通りです:

<?php 
$html = file_get_contents('http://www.deviantart.com/');

$dom = new domDocument;
@$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;
$images = $dom->getElementsByTagName('img');
foreach ($images as $image) {
  $data = $image->getAttribute('src');
  echo "<img src='".$data."' />";
}
?>
4

1 に答える 1

0

src要素の前にサイトのURLを追加するだけです。srcがhttp://で始まる場合は、チェックも追加します

foreach ($images as $image) {
  $data = $image->getAttribute('src');
  if (!preg_match('/https?:\/\//i', $data)) {
    // If src attribute does not start with "http://" or "https://", then prepend site base url
    $data = 'http://site.com/' . ltrim($data, '/');
  }
  echo "<img src='".$data."' />";
}
于 2012-06-30T06:43:34.070 に答える