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'>"; 
    ?>