微软必应(bing)搜索有一个很不错的功能就是可以每天都更换背景图片,而且每天的背景图片都很精美值得收藏。通过PHP获取必应(bing)的背景图片。
Bing 的每日背景图片官方都有一个输出地址,一个是 json 方式,一个是 XML 的方式,所以就有了下面的这两个地址。
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,非必要。
3、n,必要。
下面就直接上代码吧!
<?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];
}
else { // 如果由于某些原因,没抓取到图片地址
$imgurl = 'http://img.infinitynewtab.com/InfinityWallpaper/2_14.jpg'; // 使用默认的图像(默认图像链接可修改为自己的)
}
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;
?>
注意:这里使用的是preg_match函数是php较老版本支持的。
如果使用php7+的,试试如下代码
如果想将获取的图片保存下来,可以用如下代码:
将创建的php文件放在网站目录下,直接访问就可以获取图片了,还可以配合宝塔定时任务,每日将图片保留下来。
本站代码模板仅供学习交流使用请勿商业运营,严禁从事违法,侵权等任何非法活动,否则后果自负!
© 版权声明
THE END
暂无评论内容