也是闲的无聊,给博客加了个背景。用的必应每日一图API,实现每天更换背景图。


过程记录

 先新建一个 bing.php 文件,这主要是用于获取并保存图片。Bing每日壁纸API链接中的 idx=0 代表取今日的图,改为idx=1 即为取昨日的图。 保存的文件名直接写死,实现下载的时候替换覆盖。

代码

<?php
// Bing每日壁纸API URL
$url = "https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN";

// 发送GET请求获取数据
$response = file_get_contents($url);
$data = json_decode($response, true);

// 获取图片URL
$imageUrl = 'https://cn.bing.com' . $data['images'][0]['url'];

// 图片保存路径(含文件名)
$imagePath = 'bipu.net/bj.jpg';

// 下载图片到服务器
$ch = curl_init($imageUrl);
$fp = fopen($imagePath, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
?>

 我存放到根目录了,手动访问网站+/bing.php ,就可以下载图片到服务器。另外,为了实现背景图片可以自动更换。我决定用linux自带的crontab定时任务来实现。

定时任务:执行文件

查看是否cron是否启动,正常会返回一串数字(进程ID)。

pgrep cron

输入 crontab -e 打开定时任务,nano编辑器用法: CTRL + O 保存; CTRL + X 退出。

0 * * * * php /www/wwwroot/bipu.net/bing.php

5个 * 分别按顺序代表:分钟、小时、日期、月份、星期。我这里设置的代表每小时的0分(整点)执行。


定时任务:通过访问URL链接

这个需要安装Lynx浏览器,直接访问PHP文件的链接。保存即可。

sudo apt-get install lynx
crontab -e
0 * * * * lynx -dump https://bipu.net/bing.php

以上方法测试了两天,效果不错。准备把前几天写的停放页也给整上换背景。