如何用PHP实现自动获取必应首页每日美图

关于必应每日一图接口的使用方法的文章有很多了,但是基本上重点都是在必应每日一图的图片上,这篇文章不仅介绍如何获取图片,还将要介绍一些关于必应每日一图其他的特性。

首先是如何获取必应每日一图,代码如下。

<?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吧

赞一个 (14)
分享到: +More

评论 沙了个发

换个身份

取消评论