Php 如果我不使用此代码,instagram图像将永远不会显示
只有当我使用此代码时,图片才会显示在我的网站上Php 如果我不使用此代码,instagram图像将永远不会显示,php,image,echo,readfile,cross-origin-resource-policy,Php,Image,Echo,Readfile,Cross Origin Resource Policy,只有当我使用此代码时,图片才会显示在我的网站上 <?php $remoteImage = "https://scontent-frt3-2.cdninstagram.com/v/t51.2885-19/s150x150/67310557_649773548849427_4130659181743046656_n.jpg?tp=1&_nc_ht=scontent-frt3-2.cdninstagram.com&_nc_ohc=M1hegfYF3_AAX9GkTGH&
<?php
$remoteImage = "https://scontent-frt3-2.cdninstagram.com/v/t51.2885-19/s150x150/67310557_649773548849427_4130659181743046656_n.jpg?tp=1&_nc_ht=scontent-frt3-2.cdninstagram.com&_nc_ohc=M1hegfYF3_AAX9GkTGH&edm=AAuNW_gBAAAA&ccb=7-4&oh=50ba784cd64600a025031f7fc00740c1&oe=60BAEE93&_nc_sid=498da5";
$imginfo = getimagesize($remoteImage);
header("Content-type: {$imginfo['mime']}");
readfile($remoteImage);
?>
如果您使用浏览器的控制台来实际调试整个过程,您就会得到答案
关于您的变体:
正在将实际图像下载到服务器并输出二进制内容
正在使用img
标记嵌入图像,因此客户端将直接从Instagram的CDN请求图像
变体2)不起作用的原因很简单:
我将在这里引用Chrome的开发工具:
若要从其他来源使用此资源,服务器可能会放宽
跨源资源策略响应头:
跨源资源策略:同一站点
如果
资源和文档从同一站点提供。
Cross-Origin资源策略:Cross-Origin
仅在以下情况下选择此选项:
包含此资源的任意网站不会强制执行
安全风险
Instagram的CDN策略设置为跨来源资源策略:同一来源
——拒绝来自其他来源的请求。更多关于这方面的信息可以找到
可以找到有关源代码的示例(即scheme+主机+端口)。查看浏览器开发人员工具中的“网络”选项卡。对这张图片的反应是什么?Instagram可能不喜欢它的图片被热链接。谢谢你的回答,我可以保存图片并打电话给它吗?谢谢你的回答,有什么办法可以解决这个问题吗?可能通过使用他们的OK谢谢,我有一个问题:为什么我可以使用第一个代码?有没有一种方法可以使用该代码来获取图像并播放图像?第一个代码是将图像下载到您的服务器,您可能可以对少量图像这样做。但是你可以只做$image=file\u get\u contents($url)
——不过,我想你的服务器IP地址可能会在短时间内被Instagram屏蔽。
<?php
$link = "https://scontent-frt3-2.cdninstagram.com/v/t51.2885-19/s150x150/67310557_649773548849427_4130659181743046656_n.jpg?tp=1&_nc_ht=scontent-frt3-2.cdninstagram.com&_nc_ohc=M1hegfYF3_AAX9GkTGH&edm=AAuNW_gBAAAA&ccb=7-4&oh=50ba784cd64600a025031f7fc00740c1&oe=60BAEE93&_nc_sid=498da5";
echo "<img src='$link'>";
?>