本文编写于 1272 天前,最后修改于 1272 天前,其中某些信息可能已经过时。
获取Bing美图制作Api
看起来很复杂,但换个方法也太简单了吧,不过实际上手还是费了点心思
想法
要调用图的时候就换成bing的每日美图就行
本来是在bing官网研究官方图片地址的
结果万能的网友直接给出了bing官方的调用api
解释
参数名称 | 参数值 |
---|---|
format | 可选,返回值格式: js(即json)|xml |
idx | 可选,请求图片截止天数:0(今天)|1(截止至昨天)|-1(截止到明天准备的) |
n | 必须,请求的图片数量:1-8 |
mkt | 可选,地区,中文为zh-CN,可参考ISO语言代码标准(ISO-639) |
返回值参考
{
"images": [
{
"startdate": "20200328",
"fullstartdate": "202003281600",
"enddate": "20200329",
"url": "/th?id=OHR.BorrowingDays_ZH-CN3558219803_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp",
"urlbase": "/th?id=OHR.BorrowingDays_ZH-CN3558219803",
"copyright": "一只经受暴风雨的冠山雀,苏格兰 (© Ben Hall/Minden Pictures)",
"copyrightlink": "https://www.bing.com/search?q=%E5%86%A0%E5%B1%B1%E9%9B%80&form=hpcapt&mkt=zh-cn",
"title": "",
"quiz": "/search?q=Bing+homepage+quiz&filters=WQOskey:%22HPQuiz_20200328_BorrowingDays%22&FORM=HPQUIZ",
"wp": true,
"hsh": "d43b345a7ce721f5f22b8544be356a90",
"drk": 1,
"top": 1,
"bot": 1,
"hs": []
}
],
"tooltips": {
"loading": "正在加载...",
"previous": "上一个图像",
"next": "下一个图像",
"walle": "此图片不能下载用作壁纸。",
"walls": "下载今日美图。仅限用作桌面壁纸。"
}
}
之后调用即可
实际上手
发现要分别输出图片格式与json格式有点困难
假设实际地址是$url = https://www.bing.com/th?id=OHR.CarrickSpring_ZH-CN7085146237_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp
语言为PHP
第一种方法失败
return "<image src='{$url}'/>";
这种能输出图片,但如果要直接在css的background:url()
里调用就完全不成功,只是显示一个图片而已,
此外如果是用了现成的api封装端口,还会出现{"data":这个图片}的奇怪现象,无法正常调用,为了避免出现不需要的json,我们可以用exit()
提前结束程序运行,如
echo "<image src='{$url}'/>";
exit();
这样就不会被封装输出json
了
第二种方法失败
header("content-type:image/jpg");
return $url;
这种最后只会输出一个含小方框的图,但没有显示具体图片,但是常用来输出验证码
第三种方法成功
利用php的跳转
Header('Location:' . $url);
exit();
这样输出的就是原地址图片了,然后正常调用即可