bing.jpg
很早以前就见过每日一图的api,当时也没太在意,目前学了一段时间,也算是了解了一下。首先我们先要了解一下bing图片的链接

https://cn.bing.com/HPImageArchive.aspx?idx=0&n=1

其中 idx 的值表示的是与今日的时间差,即如果idx=1,则表示一天之前的图片,如果idx=2,则表示两天前的图片。

其中n的值表示的是图片的数量,即n=2,表示获取两个图片的数据。

下面是bing图片api源码(没有返回值,直接展示图片)


<?php    
$str=file_get_contents('https://cn.bing.com/HPImageArchive.aspx?idx=0&n=1');    
if(preg_match("/<url>(.+?)<\/url>/ies",$str,$matches)){       
  $imgurl='https://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文件,例如:api.php

然后直接访问http://你的域名/目录/api.php

这样就可以实现图片获取并展示了。

Bing每日图API请求方式

  • Method: GET

请求地址

调用方法

<img src="http://你的域名/目录/api.php"/>

当然如果你想要获取json也是可以的,但是一般好像都没有必要,毕竟效果是一样的。但是方法还是需要了解一下的。


if ($_GET['encode'] === 'js') {
    echo "function bing(){document.write('" . $imgurl ."');}";
}else if($_GET['encode'] === 'json'){
    header('Content-type:text/json');
    $content = array('img'=>$imgurl);
    echo json_encode($imgurl, JSON_UNESCAPED_UNICODE);
}else {
    echo $imgurl;
}

这样就可以输出js或者json了,方法只需要加上值就行了,例:

http://你的域名/目录/api.php?encode=json

好了,差不多了,溜了,学习去了。

最后修改:2020 年 01 月 16 日 04 : 24 PM
好吧,我穷的快要被消灭了。