【发布时间】:2019-10-01 02:01:48
【问题描述】:
假设我有一个图片网址:-example.com/myimg.png
我想检查它是包含在img src中还是有人直接通过浏览器打开的。
我需要什么:- 检查这张 GIPHY 的图片 - https://media3.giphy.com/media/N8Lfh9gWcWYIU/giphy.gif
如果你直接在浏览器中打开它,那么它会在图像的顶部和底部包含链接,但如果你在 img src 中包含这个图像,那么它只会显示一个图像。
我尝试了下面的代码,但这不是一个可靠的解决方案:-
$ref = isset($_SERVER['HTTP_REFERER'])? $_SERVER['HTTP_REFERER']: "";
if ($ref != "")
{
header( 'Content-Type: image/jpeg' );
readfile( 'my-image.jpg' );
}
else
{
<img src="my-image.jpg">
<a href="#">My Link</a>
}
【问题讨论】:
-
那是因为上面的 giphy-link 实际上并不是图片的链接。它是一个页面的链接。以上图片真实链接为i.giphy.com/media/N8Lfh9gWcWYIU/giphy.webp,可直接访问。
-
此外,发布示例链接并不能真正回答“我为什么需要这个”。而是“我想要什么”
-
@MagnusEriksson 我知道 i.giphy.com/media/N8Lfh9gWcWYIU/giphy.webp 是真实的图片网址,但我也可以在 img src 属性中传递 media3.giphy.com/media/N8Lfh9gWcWYIU/giphy.gif 并且它可以正常工作 - 如何如果它不是图像,它可以工作吗?
-
@MagnusEriksson 你能进一步解释一下吗?使用
wget时,只下载图片,无标记 -
@Magnus Eriksson 不正确。服务器可能根据
Accept请求标头回复图像或302重定向。