从bing下载并显示缩略图

时间:2016-04-27 21:03:12

标签: php

我正在尝试做两件事:

1)从Bing获取缩略图并显示它。该网址如下所示http://tse4.mm.bing.net/th?id=OIP.M764a682297c84c4e519c91b4d39a5731o0

我尝试了以下操作,但它没有用。

<?php
    $file = 'http://tse4.mm.bing.net/th?id=OIP.M764a682297c84c4e519c91b4d39a5731o0';

    header('Content-Type: image/jpg');
    header('Content-Length: ' . filesize($file));
    echo file_get_contents($file);
?>
  1. 我要做的第二件事是从bing下载缩略图(与之前的URL相同)
  2.     <?php
    
    $content = file_get_contents('http://tse4.mm.bing.net/th?id=OIP.M27a2faeba4dbe75a45036d09675745dfH0&h=200&w=210');
    
    echo file_put_contents('/images/image.jpg', $content);
     ?>
    

    上述不起作用,可能是因为URL不以JPEG扩展名结尾,但我不确定。任何想法如何解决这个问题?

    感谢。

1 个答案:

答案 0 :(得分:2)

在第一次尝试时,您编写filesize($file),但$file是字符串,而不是文件。所以你的标题是Content-Length: False。此外,如果您启用了错误报告,则您的脚本会回复类似“警告:文件大小():stat failed for ......”的内容,这会损坏JPEG输出。

在第二次尝试中,将内容保存到本地文件,然后回显file_get_contents的结果,这是一个整数,如documentation中所示。

首先检索内容,然后输出:

$file = 'http://tse4.mm.bing.net/th?id=OIP.M764a682297c84c4e519c91b4d39a5731o0';

$data = file_get_contents( $file );

header('Content-Type: image/jpg');
header('Content-Length: ' . strlen($data));
echo $data;
exit;

经过测试工作。