前几天改了一个导航网页,里面的背景图片都是手动找的,一开始是固定的一张,然后改成了几张随机的。

在用必应搜索的时候想起必应壁纸,知道有一些开发者在做必应壁纸的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