【问题标题】:PHP find a remote absolute pathPHP查找远程绝对路径
【发布时间】:2010-12-24 20:12:28
【问题描述】:

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

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

【问题讨论】:

  • 我不太明白远程 URL 的绝对路径是什么意思。您不能使用绝对路径引用远程文件。您将需要使用 $e->src 返回的标准 path.com/to/file.jpg

标签: php image path absolute


【解决方案1】:

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

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

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

查看http://php.net/manual/en/function.parse-url.php 将网址解析为站点主机,即与该主机相关的页面。

【讨论】:

    【解决方案2】:

    如果您知道过滤这些图像的地址,为什么不将其添加到 src 属性返回的内容中?

    【讨论】:

      【解决方案3】:

      如果您经常这样做(比如整个网站),您可能会看看 wget 背后的强大功能。

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

      -k --convert-links

      可能值得您花时间看看wget

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-12-24
        • 1970-01-01
        • 1970-01-01
        • 2016-08-03
        • 2010-12-17
        • 1970-01-01
        • 2011-11-15
        相关资源
        最近更新 更多