这是bing的官网api:https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN
这里只需要通过get方式即可获取到每日壁纸的详细信息
{"images":[{"startdate":"20220817","fullstartdate":"202208171600","enddate":"20220818","url":"/th?id=OHR.SourHerring_ZH-CN4136738467_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp","urlbase":"/th?id=OHR.SourHerring_ZH-CN4136738467","copyright":"哥德堡群岛的岸边,瑞典 (© Martin Wahlborg/Getty Images)","copyrightlink":"https://www.bing.com/search?q=%E5%93%A5%E5%BE%B7%E5%A0%A1%E7%BE%A4%E5%B2%9B&form=hpcapt&mkt=zh-cn","title":"世界最臭食物之乡?","quiz":"/search?q=Bing+homepage+quiz&filters=WQOskey:%22HPQuiz_20220817_SourHerring%22&FORM=HPQUIZ","wp":true,"hsh":"e99f19cb7a8f7cba196ef86e1a635e02","drk":1,"top":1,"bot":1,"hs":[]}],"tooltips":{"loading":"正在加载...","previous":"上一个图像","next":"下一个图像","walle":"此图片不能下载用作壁纸。","walls":"下载今日美图。仅限用作桌面壁纸。"}}
然后通过json_decode
将这个对象转为数组即可在PHP中用这个url输出图片了(你输出时要加上域名,因为这个相对路径下的url)
$apiurl='https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN';//官方api$api=file_get_contents($apiurl);$imgurl=@json_decode($api,true);//转数组$m='https://cn.bing.com/'.$imgurl['images'][0]['url'];//壁纸链接
注意,如果你这是用图片这样就已经可以在img标签中用这个$m
如果你想用该域名作为一个api直接调用背景
需要将header头改为图片模式
header('Content-type:image/png');
你需要在目录下创建文件img.txt
将获取到的链接通过打开文本文件的形式显示图片
$myfile = fopen("img.txt", "w") or die("Unable to open file!");fwrite($myfile, $m);fclose($myfile);$filename = "img.txt";if(!file_exists($filename)){ die('文件不存在');}//从文本获取链接$pics = [];$fs = fopen($filename, "r");while(!feof($fs)){ $line=trim(fgets($fs)); if($line!=''){ array_push($pics, $line); }} //从数组随机获取链接$pic = $pics[array_rand($pics)];$pic=str_re($pic);//返回指定格式$type=$_GET['type'];switch($type){ //JSON返回case 'json': header('Content-type:text/json'); die(json_encode(['pic'=>$pic])); default: die(header("Location: $pic"));}function str_re($str){ $str = str_replace(' ', "", $str); $str = str_replace("\n", "", $str); $str = str_replace("\t", "", $str); $str = str_replace("\r", "", $str); return $str; }$f = file_get_contents('img.txt'); fopen('img.txt','wb');
这样你就可以拥有自己的背景api了,而且自动每日更新
还可以通过这种方式实现随机壁纸更换,只要在txt文件内放入你自己喜欢的图片链接,或者不使用每次删除清空txt文件的方式来实现,即保存链接不删除
来源地址:https://blog.csdn.net/c_scholar/article/details/126398095