我现在正在努力抓住一张图片......听起来很傻,但看看这个链接:P
http://manga.justcarl.co.uk/A/Oishii_Kankei/31/1
如果您获得图片网址,则会加载图片。回过头来看,它看起来工作正常,但这只是浏览器加载缓存的图像。
该应用程序之前工作正常,我认为他们对他们的图像实施了某种Referer检查。所以我找到了一些代码并提出了以下内容......
$ref = 'http://www.thesite.com/';
$file = 'theimage.jpg';
$hdrs = array( 'http' => array(
'method' => "GET",
'header'=> "accept-language: en\r\n" .
"Accept:application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*\/*;q=0.5\r\n" .
"Referer: $ref\r\n" . // Setting the http-referer
"Content-Type: image/jpeg\r\n"
)
);
// get the requested page from the server
// with our header as a request-header
$context = stream_context_create($hdrs);
$fp = fopen($imgChapterPath.$file, 'rb', false, $context);
fpassthru($fp);
fclose($fp);
基本上它正在组成一个错误的推荐者。我回来的只是一堆胡言乱语(感谢fpassthru),所以我认为这是获得图像,但我不敢说我不知道如何输出/显示收集的图像。
答案 0 :(得分:0)
在拨打fpassthru之前尝试拨打电话:
header('Content-Type: image/jpeg');
这将告诉您的浏览器接下来的数据是JPEG图像。否则PHP会自动说它是HTML文档,这显然是错误的。
注意:请记住,在向浏览器输出任何其他内容之前,必须先调用header
,这意味着您无法拥有任何echo
或{{1}在致电print
之前调用,并且在打开header
标记之前您根本没有任何内容。