必应每日一图

闲的无聊,给域名停放页加了个背景图。用的必应每日一图API,实现每天更换背景图。

过程记录

先新建一个 biying.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 = '/bing/bg.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);
?>

新建好的PHP文件存放到根目录,手动访问域名+/biying.php ,就可以下载图片到服务器。用定时任务来实现每天下载图片,省去手动。


定时任务:执行文件

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

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

0 * * * * php /www/wroot/qq573402.xyz/biying.php

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


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

// 安装Lynx浏览器
sudo apt-get install lynx
crontab -e
0 * * * * lynx -dump https://qq573402.xyz/biying.php

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


其他定时方法

宝塔面板、1panel建站的话,都有“计划任务”加一个定时访问URL的任务,也可以达到同样的效果!