由于bing一直在提供每日更新背景图片壁纸的json数据,
http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1
请求该网址后会返回:
{
"images":[
{
"startdate":"20200721",
"fullstartdate":"202007211600",
"enddate":"20200722",
"url":"/th?id=OHR.RedBlueWildebeest_ZH-CN1024893552_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp",
"urlbase":"/th?id=OHR.RedBlueWildebeest_ZH-CN1024893552",
"copyright":"日落时分正在迁徙的斑纹角马群,肯尼亚马赛马拉野生动物保护区 (© Denis-Huot/Minden Pictures)",
"copyrightlink":"https://www.bing.com/search?q=%E9%A9%AC%E8%B5%9B%E9%A9%AC%E6%8B%89%E9%87%8E%E7%94%9F%E5%8A%A8%E7%89%A9%E4%BF%9D%E6%8A%A4%E5%8C%BA&form=hpcapt&mkt=zh-cn",
"title":"",
"quiz":"/search?q=Bing+homepage+quiz&filters=WQOskey:%22HPQuiz_20200721_RedBlueWildebeest%22&FORM=HPQUIZ",
"wp":true,
"hsh":"70c1d9fb9acbcd479b4415ae45cdb114",
"drk":1,
"top":1,
"bot":1,
"hs":[
]
}
],
"tooltips":{
"loading":"正在加载...",
"previous":"上一个图像",
"next":"下一个图像",
"walle":"此图片不能下载用作壁纸。",
"walls":"下载今日美图。仅限用作桌面壁纸。"
}
}
于是我们可以做一个php脚本来获取其中的url信息:
<?php
$str=file_get_contents('http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1'); // 从bing获取数据
if(preg_match('/<url>([^<]+)<\/url>/isU', $str, $matches)) { // 正则匹配抓取图片url
$imgurl = 'http://cn.bing.com'.$matches[1];
} else { // 如果由于某些原因,没抓取到图片地址
$imgurl='https://eeezhihebika.top/usr/themes/Bubble-master/images/no_wallpaper.jpg'; // 使用默认的图像(默认图像链接可修改为自己的)
}
header("Location: {$imgurl}"); // 跳转至目标图像
将这个文件保存为.php后放在typecho文件夹中,然后在主题设置里面填入这个php文件的绝对地址,一个每日更新的背景页就做好啦
然后可以通过相同手法来提取每日壁纸的版权信息和标题
版权信息:
<?php
$url=file_get_contents('https://cn.bing.com/HPImageArchive.aspx?idx=0&n=1');
if (preg_match("/」(.+?)<\/copyright>/ies", $url, $matches)) {
$imgcopyright=$matches[1];
}
if ($imgcopyright) {
header("Content-type: text/html; charset=utf-8");
echo $imgcopyright;
} else {
exit('error');
}
?>
标题的话自行替换正则匹配式和相关内容即可