可说欢喜
Typecho

Typecho 无插件获取必应每日壁纸、故事

by 温柔, 2019-04-09


获取必应每日壁纸和故事

functions.php文件内加入下面代码

/**
* 获取必应每日壁纸、故事
* @author  Warner
* @link    https://github.com/WarnerYang
* @return  string
*/
function bing(){
    //删除之前的图片和故事
    for ($i=1; $i <=30 ; $i++) { 
        @unlink(date('Ymd',time()-24*3600*$i).'.jpg');
        @unlink(date('Ymd',time()-24*3600*$i).'.json');
    }
    $img_name   = date('Ymd').'.jpg'; //每日图片
    $coverstory = date('Ymd').'.json'; //每日故事 json格式
    if (!file_exists($img_name)) {
        $url = "http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1";
        $result = file_get_contents($url);
        $output = json_decode($result,true);
        $img_url = $output["images"][0]["url"];
        $img = file_get_contents("http://cn.bing.com".$img_url);  
        @file_put_contents($img_name,$img); //写入图片
    }
    if (!file_exists($coverstory)) {
        $json = file_get_contents('http://cn.bing.com/cnhp/coverstory/');
        @file_put_contents($coverstory,$json); //写入文本
    }
    $coverstory = json_decode(file_get_contents($coverstory),true);
    return $coverstory;
}

使用方法

在需要调用的地方加入

 <?php $bing = bing(); ?>

这个会触发获取文件然后会在根目录生成必应的每日图片每日故事(json格式)

文件格式如下:

20190409.jpg
20190409.json

在需要显示的地方加入

<?php _e($this->options->siteUrl() . date('Ymd') . '.jpg'); ?>

我写Cactus主题参考了这个代码改一改就可以直接用了

typechobing
温柔

作者: 温柔

1 条评论
    Burce 回复
    Burce2019-08-25 15:06

    666

2024 © typecho & elise