如何用PHP检测页面重定向?

时间:2010-05-20 17:13:46

标签: php image file detect exists

我正在尝试检测远程服务器上是否存在图像。但是,我尝试了几种方法,无法使它们起作用。

现在我正在尝试使用它:

if (!CheckImageExists("http://img2.netcarshow.com/ABT-Audi_R8_2008_1024x768_wallpaper_01.jpg")) {
    print_r("DOES NOT EXIST");
} else {
    print_r("DOES EXIST");
};

function CheckImageExists($imgUrl) {
    if (fopen($imgUrl, "r")) {
        return true;
    } else {
        return false;
    };
};

但无论图像是否真实存在,它都会返回'true'(上面的图像应该是,但是将其更改为乱码并仍然会返回'true')。我有一种感觉,可能是因为如果URL不存在,它会重定向到网站的主页。但我不知道如何发现它。

感谢您的帮助!

4 个答案:

答案 0 :(得分:2)

使用cURL

获取资源后,您可以获取调用curl_errno()的错误代码。

答案 1 :(得分:0)

您可能会将HTML页面重新放回包含“未找到404图像”或类似内容的$ imgUrl中。

您应该能够检查代码的响应,表明请求失败或重定向。

答案 2 :(得分:0)

这应该可以解决问题(使用图像大小):

if (!CheckImageExists("http://www.google.com/intl/en_ALL/images/srpr/logo1w.png")) {
    echo 'DOES NOT EXIST';
} else {
    echo 'DOES EXIST';
};

function CheckImageExists($imgUrl) {
    if (@GetImageSize($imgUrl)) {
        return true;
    } else {
        return false;
    };
};

答案 3 :(得分:0)

使用Seb的方法。只是使用YQL来检查页面的实际内容并确定它是否是错误。