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

只需将站点 url 添加到 src 元素。如果 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 回答