PHP找到一个远程绝对路径

时间:2009-12-09 13:37:47

标签: php image path absolute

我在获取远程图像的绝对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的图像,因为它们不在我的服务器上。

那么有谁知道如何解析远程图像的绝对路径?

3 个答案:

答案 0 :(得分:1)

您需要获取基本域以及相对URL根。

因此,如果在页面上找到图像,yoursite.com/slideshow/4/view,但相对指向./../../images/435.jpg,您只需组合路径即可。

否则,如果图像指向域的根(您可以使用正则表达式来查找第一个字符是否为/),那么您可以使用yoursite.com并将该路径添加到字符串中。

查看http://php.net/manual/en/function.parse-url.php将网址解析为网站托管服务商,即该主机的相关网页。

答案 1 :(得分:0)

如果您知道过滤这些图像的位置,为什么不将它添加到src属性返回的位置?

答案 2 :(得分:0)

如果你这么做(比如整个网站),你可能会看到wget背后的力量。

其中一个选项是重建网址,IIRC。

-k - 转换链接

值得您花时间看看wget