前几天改了一个导航网页,里面的背景图片都是手动找的,一开始是固定的一张,然后改成了几张随机的。
在用必应搜索的时候想起必应壁纸,知道有一些开发者在做必应壁纸的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