网上获取Bing背景图的方法很多,但是好像很多都是获取的都是1366x768像素的,大屏幕下这个大小好像不够用,但是Bing网站的背景图是1920x1080的,官方用的是Josn方式获取的,于是在CSDN到了下面的代码:
$str = file_get_contents('http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1');
$array = json_decode($str);
$imgurl = $array->{"images"}[0]->{"url"};
用echo $imgurl;就可以输出图片地址了,在本地测试正常,但是我的实际应用却遇到了一些问题,上传到主机只能输出"/az/hprichbg/rb/图片名_1920x1080.jpg"不含主机头的地址,万分不解,于是我就稍微改造了下:
$imgurl = 'http://s.cn.bing.net'.$array->{"images"}[0]->{"urlbase"}.'_1920x1080.jpg';
这样就可以在一些比较特殊的主机上正常调用图片了,而且上面的方式还可以用一些CDN镜像这些图片来加速静态文件访问速度,比如我就是用的七牛云存储,简单粗暴的就应用上了。
解析:
$str = file_get_contents('http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1');
idx=0的意思是当天的图片,1为昨天使用的图片,-1为明天要使用的图片,最小为-1,最大为15,也就是可以通过修改idx可以获取最近17的图片。 n=1 则是打印几个图片josn,默认1就可以打印一个图片信息,可以修改一下做其他用途。