【问题标题】:How to get the absolute image URIs with SimpleHTMLDom [duplicate]如何使用 SimpleHTMLDom 获取绝对图像 URI [重复]
【发布时间】:2011-04-13 21:54:09
【问题描述】:

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

  • images/_home-ss-21.jpg
  • /_home-ss-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 />';   
}
?>

【问题讨论】:

    标签: php simple-html-dom


    【解决方案1】:

    在您的foreach 中,您可以尝试以下方法来构建图像的 URL。

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

    有一些脚本也可以完成这项工作,将相对 URL 转换为绝对 URL:

    我从未尝试过它们,但它们应该可以帮助您克服这个问题。

    【讨论】:

    • 对不起,我测试了很长时间,但我已经解决了我的问题。你发现的一些文章可以很好地工作。再次感谢。
    • !!!关于点击第一个链接的主要警告。如果你点击它,它会将你困在那个页面上!!!!
    【解决方案2】:

    3 个选项:

    1. 其他网站的图片以http://开头>使用直接链接
    2. 图片以/开头>使用其他网站的主页+图片
    3. 图片不以 /> 开头 > 使用完整 url + 路径到您正在检查的网站的主管并添加图片

    【讨论】:

      【解决方案3】:

      ./ 是当前目录,所以如果你在 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 的目录。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-15
        • 2011-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多