关于必应每日一图接口的使用方法的文章有很多了,但是基本上重点都是在必应每日一图的图片上,这篇文章不仅介绍如何获取图片,还将要介绍一些关于必应每日一图其他的特性。
首先是如何获取必应每日一图,代码如下。
<?php $str=file_get_contents('http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1'); if(preg_match("/<url>(.+?)<\/url>/ies",$str,$matches)){ $imgurl='http://cn.bing.com'.$matches[1]; } if($imgurl){ header('Content-Type: image/JPEG'); @ob_end_clean(); @readfile($imgurl); @flush(); @ob_flush(); exit(); }else{ exit('error'); } ?>
那么学过一点PHP的同学都不难看出,这里使用了正则表达式过滤了来自http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1的信息
那么我们顺藤摸瓜的打开http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1可以发现这是一个关于必应当天图片的XML页面。
正则表达式中过滤出的内容为和标签之间的内容,也就是图片的url。这也就不难解释为什么我们可以通过这段代码获取到图片了。(如果要显示图片直接在img的src处填写.php文件就可以)
那么除了图片的url信息我们还能获取到什么别的信息呢?例如20160202,20160203,泰国,曼谷,高速公路延时摄影 (? Imaake/Shutterstock)等。我的博客就在首页引用了泰国,曼谷,高速公路延时摄影 (? Imaake/Shutterstock)信息。
如果想获取这个copyright信息也不难,我们只需要稍微修改下代码。
/** * 获取bing图片简介 */ $str=file_get_contents('http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1'); if(preg_match("/<copyright>(.+?)<\/copyright>/ies",$str,$matches)){ $imgcopyright=$matches[1]; }
在这里 $imgcopyright 就是图片简介的内容了。
原文出处【CASE吧】