检测图像是否加载到域外的页面中

时间:2012-03-29 07:40:59

标签: php image

我想创建一个网址,该网址在我的域中的页面中加载时会返回一个图像,而当加载到页面 之外时,会另一个略微修改的图像域。

我正在思考类似的事情:

<?php
    header('Content-type: image/jpg');
    if (/**image is loaded within my domain**/)
    {
        readfile("image1.jpg");
    }
    else
    {
        readfile("image2.jpg");
    }
?>

我是否可以在if语句中添加一些内容以使其正常工作?可能适用于所有浏览器?

有没有办法在没有php的情况下做到这一点?

2 个答案:

答案 0 :(得分:3)

您可以在请求中使用引荐来源网址,并检查它是否是您的域名。这是使用$_SERVER['HTTP_REFERER']完成的。

但是,客户端可以轻松修改HTTP_REFERER URL,有时甚至无法设置,因此在使用时需要小心。

答案 1 :(得分:1)

我不知道,您将如何获取不在您的域中的图片请求,但您可以查看$_SERVER['HTTP_HOST']。也许,HTTP_REFERER就是你所需要的。无论如何看here