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 背后的强大功能。

选项之一是重建 URL,IIRC。

-k --转换链接

可能值得您花时间看看wget

于 2009-12-09T16:10:50.810 回答