最近感觉一直在忙与做泪雪用户中心的开发,都没有怎么玩儿,就连中秋节都在忙碌,好不容易闲下来休息一下,又总是觉得很无聊的样子,这不有开始来折腾一下了。
其实很早之前就想来试试抓取 Bing 每天的背景图片,但是到最后还是就放弃了。首先还是在网上收罗了一番,发现用到的方法都大同小异,废话就不多说了,子凡直接上中心内容。
Bing 的每日背景图片官方都有一个输出地址,一个是 json 方式,一个是 XML 的方式,所以就有了下面的这两个地址。
1 2 | https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1 https://cn.bing.com/HPImageArchive.aspx?idx=0&n=1 |
根据上面地址的结构,我暂时研究到就三项属性有效,他们分别是
1、format,非必要。我理解为输出格式,不存在或者不等于 js,即为 xml 格式,等于 js 时,输出 json 格式;
2、idx,非必要。不存在或者等于 0 时,输出当天的图片,-1 为已经预备用于明天显示的信息,1 则为昨天的图片,idx 最多获取到前 16 天的图片信息;*
3、n,必要。这是输出信息的数量,比如 n=1,即为 1 条,以此类推,至多输出 8 条。
了解了这个两个地址后,相信只要懂程序的人都知道需要把我们需要的图片 URL 提炼出来。
下面就直接上子凡的代码吧!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <?php $s = $_GET['s']; if($s == 'big'){ /////////////////////////////////////////////////////////////////////////////// $str = file_get_contents('https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1'); $array = json_decode($str); $imgurl = $array->{"images"}[0]->{"url"};//图片 URL //$copyright = $array->{"images"}[0]->{"copyright"};//图片描述版权 if($imgurl){ header('Location: '.$imgurl); exit(); }else{ exit('error'); } /////////////////////////////////////////////////////////////////////////////// }else{ /////////////////////////////////////////////////////////////////////////////// $str=file_get_contents('https://cn.bing.com/HPImageArchive.aspx?idx=0&n=1'); if(preg_match("/<url>(.+?)<\/url>/ies",$str,$matches)){ $imgurl='https://cn.bing.com'.$matches[1]; } if($imgurl){ header('Location: '.$imgurl); //直接输出 //header('Content-Type: image/JPEG'); //@ob_end_clean(); //@readfile($imgurl); //@flush(); @ob_flush(); exit(); }else{ exit('error'); } /////////////////////////////////////////////////////////////////////////////// } //echo $imgurl.'<br>'.$copyright; ?> |
简单的说一下上面代码的功能,其实以上有获取两种背景大小的功能,所以就用到了两个地址,因为官方提供的地址中 json 输出的图片是 1920 x 1080,而使用 XML 输出的图片地址是 1366 x 768,对于子凡这样追求极致的人来说,做成这样就情有可原咯!
1 2 3 | //DEMO 示例 https://zhangzifan.com/bing //获取 1366 x 768 的小图 https://zhangzifan.com/bing?s=big //获取 1920 x 1080 的大图 |
好吧!多余的就不说了,有兴趣的朋友们还可以继续深度研究。如果大家有什么好玩儿的功能也可以给子凡折腾折腾哈!
最后再给大家分享一个 Bing 搜索引擎的小功能:
www.bing.com/?rb=0 //这个可以关闭 Bing 搜索引擎的背景图片哦
www.bing.com/?rb=1 //这个可以开启 Bing 搜索引擎的背景图片哦
除非注明,否则均为泪雪博客原创文章,禁止任何形式转载
留言评论