在某些网站上无法使用file_get_contents(PHP)

时间:2013-06-09 01:20:38

标签: php file-get-contents

实际上我在开发“改变头像”之类的东西时一直在愚弄,其中存在从URL中获取图像的选项

$raw  = file_get_contents($src);
$img  = imagecreatefromstring($raw);
// and others gd stuff

实际上它工作正常,除非它来自某个网​​站,如pixiv
http://i2.pixiv.net/img02/img/suzupin/2800349.jpg
例如,这会抛出一些错误

顺便说一下,当我尝试在Pinterest上设置PIN码时,情况也一样= P
为什么?

有没有办法阻止其他人在我的网站上执行file_get_contents这样的操作? 我可以说它与oriental websites有关吗?因为我经常不能从日本来源PIN图像。 >。<

2 个答案:

答案 0 :(得分:2)

这些网站正在实施“预防热链接”。有许多不同的方法 - 一些@duskwuff建议 - cookies,检查引用,会话等。

您想要做的是规避热链接预防,并在此SO问题中回答:Download file from URL using CURL

答案 1 :(得分:-1)

您可以使用登录表单或验证码然后允许图像查看和测试浏览器版本等但如果用户使用curl与cookie(我不知道如何使用cookie与file_get_contents,那么很难禁止用户。