前言

Bing 图片从来都不会重复,这些图片都是由必应的团队精挑细选的美图,网络上自动将必应壁纸保存到服务器本地的PHP代码很多,由于我自己的服务器带宽比较小,将bing壁纸保存到服务器本地并作为网站背景时加载速度太慢会影响观感,那么,如果可以把直接 Bing 的每日图片接口通过PHP设置为博客背景会不会更好看呢?

接口

进行抓包,我们可以知道这个链接 https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1

获取图片

通过抓包显示结果:

{"images":[{"startdate":"20211129","fullstartdate":"202111291600","enddate":"20211130","url":"/th?id=OHR.ElephantGiving_ZH-CN9743352473_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp","urlbase":"/th?id=OHR.ElephantGiving_ZH-CN9743352473","copyright":"马赛马拉国家保护区中的非洲草原象,肯尼亚 (© Yva Momatiuk and John Eastcott/Minden Pictures)","copyrightlink":"https://www.bing.com/search?q=%E9%9D%9E%E6%B4%B2%E8%8D%89%E5%8E%9F%E8%B1%A1&form=hpcapt&mkt=zh-cn","title":"","quiz":"/search?q=Bing+homepage+quiz&filters=WQOskey:%22HPQuiz_20211129_ElephantGiving%22&FORM=HPQUIZ","wp":true,"hsh":"e9a2162e9a4784993285642a017c0693","drk":1,"top":1,"bot":1,"hs":[]}],"tooltips":{"loading":"正在加载...","previous":"上一个图像","next":"下一个图像","walle":"此图片不能下载用作壁纸。","walls":"下载今日美图。仅限用作桌面壁纸。"}}

我们从中提取图片链接,url地址:

/th?id=OHR.ElephantGiving_ZH-CN9743352473_1920x1080.jpg&rf=LaDigue_1920x1080.jpg

以下是将必应每日图片通过 php 直接输出分辨率为1920X1080的图片的代码

<?php
    $str=file_get_contents('https://cn.bing.com/HPImageArchive.aspx?idx=0&n=1');
if (preg_match("/<urlBase>(.+?)<\/urlBase>/", $str, $matches)) {
    $imgurl='https://cn.bing.com'.$matches[1].'_1920x1080.jpg';
}
if ($imgurl) {
    header('Content-Type: image/JPEG');
    @ob_end_clean();
    @readfile($imgurl);
    @flush();
    @ob_flush();
    exit();
} else {
    exit('error');
}
?>

如何浏览昨天,前天的图片

http://cn.bing.com/HPImageArchive.aspx?idx=`0`&n=1 在这里,更换 idx= 这个参数就可以了。
http://cn.bing.com/HPImageArchive.aspx?idx=`1`&n=1 将要得到昨天的图片
http://cn.bing.com/HPImageArchive.aspx?idx=`2`&n=1 得到前天的图片

自用接口

今日:https://www.5k5b.com/img/bing.php
昨日:https://www.5k5b.com/img/bing1.php
前日:https://www.5k5b.com/img/bing2.php

至此,自己的接口就搭建完了,那么如何把他运用到网站背景 并实现被日自动切换呢?

教程

1.在外观设置开关中打开炫酷透明模式
2.在外观设置-背景颜色/图片中填入自己搭建的bing每日图片接口
保存即可,刷新博客首页看看效果吧~~~

最后修改:2022 年 09 月 08 日
如果觉得我的文章对你有用,请随意赞赏