PHP区分图像url和页面的url与该图像

时间:2012-10-31 00:04:08

标签: php image dom

我有一个脚本,可以从用户提供的URL中找到图像。

因此对于输入字符串:“http://www.google.com/”, 我使用像

这样的东西
$html = file_get_html ( $url );
if ($html->find ( 'img' )) {....}

它将结果显示为“http://www.google.com/images/srpr/logo3w.png”。

但是,如果用户输入字符串“http://www.google.com/images/srpr/logo3w.png”。没有img标签。 URL有效,但代码失败。这种情况如何包含在代码中?

3 个答案:

答案 0 :(得分:1)

执行此操作的最佳方法是perform a HEAD request并检查内容类型以查看网址是否与图片相对应。如果它是一个图像,那么随意做任何事情,但如果它是一个HTML页面,那么使用你的其他代码。

答案 1 :(得分:1)

您可以使用curl从服务器获取内容类型。然后,如果它是一个图像mime类型,你可以直接使用它而不是解析html。

Get mime type of external file using cURL and php

答案 2 :(得分:0)

根据您要对图片执行的操作,我会使用file_get_contents获取页面内容,然后使用imagecreatefromstring将其转换为gd图像资源。如果它无法将其转换为图像,则返回false,因此您可以使用str_get_html来解析html(假设您正在使用http://simplehtmldom.sourceforge.net/