如何使用SimpleHTMLDom获取绝对图像URI

时间:2011-04-13 12:38:03

标签: php simple-html-dom

我使用simple_html_dom来获取网站的图片。但有时,图像的链接不以完整的域URI为前缀,例如与http://example.com。它们看起来像

  • 图像/ _home-β-21.jpg
  • / _家-β-22b.jpg
  • ./_ 1249a7s.png或
  • ../../../ a19489s_20110412.jpeg。

如何将这些URI转换为绝对URI,包括协议和域信息。

<?php
header('Content-type:text/html; charset=utf-8');
require_once 'simple_html_dom.php';
$v = 'http://www.typepad.com/';
$html = file_get_html($v);
foreach($html->find('img') as $element) {
    echo $element->src.'<hr />';   
}
?>

3 个答案:

答案 0 :(得分:2)

foreach内,您可以尝试以下操作来构建图片的网址。

$img_src = $element->src;
if(!strstr($img_src, 'http://')) {
    $img_src = $v . $img_src;
}
echo $img_src . '<hr /';

还有一些脚本可以将相对URL转换为绝对URL:

我从未尝试过,但他们应该帮助你解决这个问题。

答案 1 :(得分:2)

3个选项:

  1. 其他网站上的图片以http://&gt;开头。使用直接链接
  2. 图片以/&gt;开头使用其他网站的主页+图像
  3. 图片不以/&gt;开头使用完整网址+路径指向您正在检查的网站的导演并添加图片

答案 2 :(得分:1)

./是当前目录,因此,如果您在http://example.com,并且看到带有src属性的图像./hoopy_frood.png,则表示整个地址为http://example.com/hoopy_frood.png

../表示一个目录向上,例如在http://example.com/ice_cream/sundae.html,如果您看到具有src属性的图像../ images/hoopier_is_not_a_word.gif,则图像hoopier_is_not_a_word.gif位于名为images的目录中,这是在站点根目录中以及名为ice_cream的目录。