1

我有一个脚本,可以从用户提供的 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 有效,但代码失败。这种情况如何包含在代码中?

4

3 回答 3

0

最好的方法是执行 HEAD 请求并检查内容类型以查看 URL 是否对应于图像。如果是图像,则对它做任何你想做的事情,但如果它是 HTML 页面,则使用你的其他代码。

于 2012-10-31T00:09:25.990 回答
0

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

使用 cURL 和 php 获取外部文件的 mime 类型

于 2012-10-31T00:09:36.303 回答
0

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

于 2012-10-31T00:13:12.460 回答