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

发布于 2024-09-02 10:47:40 字数 517 浏览 5 评论 0原文

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

现在我正在尝试使用这个:

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 不存在,它会重定向到该网站的主页。但我不知道如何检测到这一点。

感谢您的帮助!

I'm trying to detect whether an image exists on a remote server. However, I've tried several methods and can't get any of them to work.

Right now I'm trying to use this:

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;
    };
};

But it returns 'true' whether the image actually exists or not (the above image should, but change it to gibberish and it still will return 'true'). I have a feeling it could be because if the URL does not exist, it redirects to the homepage of the site. But I don't know how to detect that.

Thanks for any help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

魔法唧唧 2024-09-09 10:47:40

使用 cURL

获取资源后,调用 curl_errno()< 会得到错误代码/a>.

Use cURL.

After fetching the resource, you can get the error code calling curl_errno().

笑,眼淚并存 2024-09-09 10:47:40

您可能会在 $imgUrl 中返回一个 HTML 页面,其中包含“404 图像未找到”或类似内容。

您应该能够检查响应中是否有指示请求失败或重定向的代码。

The chances are you are getting a HTML page back into your $imgUrl that contains "404 image not found" or something similar.

You should be able to check the response for a code indicating that the request failed or redirected.

2024-09-09 10:47:40

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

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;
    };
};

This should do the trick (using image size):

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;
    };
};
我只土不豪 2024-09-09 10:47:40

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

Got it working with Seb's method. Just used YQL to inspect the actual content of the page and determine if it's an error or not.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文