【问题标题】:PHP to save logo image from submitted URLPHP从提交的URL保存徽标图像
【发布时间】:2016-05-17 22:06:06
【问题描述】:

我正在使用 php 从图像 URL ($imgURL) 中保存图像 ($img) 使用

file_put_contents($img, file_get_contents($imgURL));

$imgURL 链接是从用户提交的 URL ($webURL) 中提取的。这工作正常。但是,站点可能有许多图像 URL。如何提取站点中使用的徽标文件的图像 ($webURL)?换句话说,如何找出哪个 $imgURL 包含 logo 图片?

【问题讨论】:

    标签: php


    【解决方案1】:

    您需要知道要解析的 HTML。然后,您需要使用 come 属性来获取您想要的信息,例如任何类、名称、src、...

    所以,你可以像这个帖子已经显示的那样:getting image src in php

    $doc = new DOMDocument();
    $doc->loadHTMLFile($url);
    $xpath = new DOMXpath($doc);
    $imgs = $xpath->query("//img");
    for ($i=0; $i < $imgs->length; $i++) {
        $img = $imgs->item($i);
        $src = $img->getAttribute("src");
        // do something with $src
    
        ... if img contains your logo data, return ..
    }
    

    【讨论】:

    • 谢谢,一切正常。关键是:如果用户提交的 URL ($webURL) 有许多指向图像 ($imgURL) 的链接,那么如何自动找出哪个图像包含该 URL 所提交的站点的徽标或非常相关的图像?例如,en.unesco.org 具有指向许多 (>50) 图像的链接。有没有办法找到相关的图片(例如联合国教科文组织的标志,或描述联合国教科文组织的图片)?
    • 您可以尝试查找名称中带有logo 的图像,但并非每次都有效。无法始终知道哪个图像是您的徽标。 HTML 不提供此信息。您可以做的是,如果您没有找到任何徽标,您可以显示该页面的所有图像,要求用户选择哪个图像是您的徽标,然后保存此信息。
    猜你喜欢
    • 2010-10-17
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多