WIXOO >> 设计与技术 >> 代码技术 >> 用PHP方式获取Bing每日背景图片

当前位置:设计与技术 >> 代码技术 >> 用PHP方式获取Bing每日背景图片

用PHP方式获取Bing每日背景图片

[来源:泪雪博客] [作者:不详] [日期:17-03-09] [热度:]
关键字:用PHP方式获取Bing每日背景图片

最近感觉一直在忙与做泪雪用户中心的开发,都没有怎么玩儿,就连中秋节都在忙碌,好不容易闲下来休息一下,又总是觉得很无聊的样子,这不有开始来折腾一下了。

其实很早之前就想来试试抓取Bing每天的背景图片,但是到最后还是就放弃了。首先还是在网上收罗了一番,发现用到的方法都大同小异,废话就不多说了,子凡直接上中心内容。

bing

Bing的每日背景图片官方都有一个输出地址,一个是json方式,一个是XML的方式,所以就有了下面的这两个地址。

1
2
http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1
http://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('http://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('http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1');
	if(preg_match("/<url>(.+?)<\/url>/ies",$str,$matches)){
		$imgurl='http://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搜索引擎的背景图片哦

除非注明,否则均为泪雪博客原创文章,转载请以链接形式标明本文地址

本文链接:https://zhangzifan.com/get-bing-bg.html

评论