必应每日一图

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

过程记录

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

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?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)。

1
pgrep cron

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

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

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

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

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

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

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

转自:[学习]必应每日一图 - 游龙生日志-网络虚拟世界的一角


必应每日一图
https://pknote.top/349.html
作者
胖氪不胖
发布于
2024年5月13日
许可协议