必应每日一图
Mr.oki
撰写于 2024年 10月 11 日

在索玛博客看到了每日一图的程序,经过尝试,还是失败了,后来经过文心一言的修正,总算成功了。下面将实施过程分享给大家。

过程记录

先新建一个 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);  
  
// 检查数据是否成功获取并包含有效图片信息  
if ($data && isset($data['images'][0]['url'])) {  
    // 获取图片URL  
    $imageUrl = 'https://cn.bing.com' . $data['images'][0]['url'];  
  
    // 图片保存路径(确保在open_basedir允许的路径内)  
    $imagePath = '***/bg.jpg'; // 修改为允许的路径(请更换为自己的路径)  
  
    // 尝试打开文件句柄  
    $fp = fopen($imagePath, 'wb');  
    if ($fp === false) {  
        echo "无法打开文件用于写入:$imagePath";  
        exit;  
    }  
  
    // 下载图片到服务器  
    $ch = curl_init($imageUrl);  
    curl_setopt($ch, CURLOPT_FILE, $fp);  
    curl_setopt($ch, CURLOPT_HEADER, 0);  
      
    // 执行cURL请求并检查是否成功  
    if (curl_exec($ch) === false) {  
        $error = curl_error($ch);  
        echo "cURL Error: $error";  
    } else {  
        echo "图片下载成功,保存到路径:$imagePath";  
    }  
  
    // 关闭cURL会话和文件句柄  
    curl_close($ch);  
    fclose($fp);  
} else {  
    echo "无法获取Bing每日壁纸数据或数据格式不正确。";  
}  
?>

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

定时任务:执行文件

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

写在最后

个人引导页、微趣的背景图均已调用每日一图。感兴趣的,可以联系我,直接提供接口~

必应每日一图

在索玛博客看到了每日一图的程序,经过尝试,还是失败了,后来经过文心一言的修正,总算成功了。下面将实施过程分享给大家。

过程记录

先新建一个 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);  
  
// 检查数据是否成功获取并包含有效图片信息  
if ($data && isset($data['images'][0]['url'])) {  
    // 获取图片URL  
    $imageUrl = 'https://cn.bing.com' . $data['images'][0]['url'];  
  
    // 图片保存路径(确保在open_basedir允许的路径内)  
    $imagePath = '***/bg.jpg'; // 修改为允许的路径(请更换为自己的路径)  
  
    // 尝试打开文件句柄  
    $fp = fopen($imagePath, 'wb');  
    if ($fp === false) {  
        echo "无法打开文件用于写入:$imagePath";  
        exit;  
    }  
  
    // 下载图片到服务器  
    $ch = curl_init($imageUrl);  
    curl_setopt($ch, CURLOPT_FILE, $fp);  
    curl_setopt($ch, CURLOPT_HEADER, 0);  
      
    // 执行cURL请求并检查是否成功  
    if (curl_exec($ch) === false) {  
        $error = curl_error($ch);  
        echo "cURL Error: $error";  
    } else {  
        echo "图片下载成功,保存到路径:$imagePath";  
    }  
  
    // 关闭cURL会话和文件句柄  
    curl_close($ch);  
    fclose($fp);  
} else {  
    echo "无法获取Bing每日壁纸数据或数据格式不正确。";  
}  
?>

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

定时任务:执行文件

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

写在最后

个人引导页、微趣的背景图均已调用每日一图。感兴趣的,可以联系我,直接提供接口~

上一篇
okii.cn 上线
下一篇
没有了
赞 (0)

猜您想看

评论区(1条评论)

我要评论


小小云
LV1
  

全能型博主,还会php呢,(我域名到期了,不想续费了,等好好学学工控,也搭建一个博客)

回复 1