前几天改了一个导航网页,里面的背景图片都是手动找的,一开始是固定的一张,然后改成了几张随机的。
在用必应搜索的时候想起必应壁纸,知道有一些开发者在做必应壁纸的api。
所以我就去找了下,才知道原来必应壁纸是有官方api的。但是官方api的提供的壁纸图片数量有限,时间也有限,不过够用了。
之后就直接通过其他人写好的代码,稍微改了一下,就能自动当网页背景图片了。
原作者应该已经写好一个接口了,只是已经打不开了,估计没做了。
创建一个php文件background.php,然后在里面写上php代码段:
<?php
// background.php
$json_string = file_get_contents('https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=3&mkt=zh-CN');
$data = json_decode($json_string, true);
$url = 'https://cn.bing.com' . $data['images'][0]['url'];
echo $url;
?>
html网页的css代码:
<style>
body {
background-image: url('<?php echo file_get_contents('background.php'); ?>');
background-size: cover;
background-position: center;
margin: 0;
padding: 0;
}
</style>
这样每刷新一次网页,背景图片就会变一次。不过加载图片的速度有点慢…就加载速度来说不如用固定图片链接快,毕竟这个得获取解析再调用。
也可以就写到网页的html代码里面,放最下面就行。
<?php
function get_random_bing_image() {
// 获取每日壁纸列表
$json_string = file_get_contents('https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=3&mkt=zh-CN');
$data = json_decode($json_string, true);
// 选择随机一张图片
$random_index = array_rand($data['images']);
$image_data = $data['images'][$random_index];
// 构建完整的图片URL
$url = 'https://cn.bing.com' . $image_data['url'];
return $url;
}
?>
然后在css里面:
<style>
body {
background-image: url('<?php echo get_random_bing_image(); ?>');
background-size: cover;
background-position: center;
margin: 0;
padding: 0;
}
</style>
这样只是少单独用一个PHP文件。
官方接口说明:
| 参数名称 | 值含义 |
|---|---|
| format(非必需) | 返回数据格式,不存在返回xml格式js (返回json格式,一般使用这个)xml(返回xml格式) |
| idx(非必需) | 请求图片截止天数0 今天-1 截止至明天(预准备的)1 截止至昨天,类推(目前最多获取到16天前的图片) |
| n(必需) | 1-8 返回请求数量,目前最多一次获取8张 |
| mkt(非必需) | 地区zh-CN... |
参考来源:https://www.cnblogs.com/xkboi/p/16062027.html
