php获取Bing美图

  • A+
微软的必应搜索的每日图片不得不说,都是经典,美得一塌糊涂。
看到很多把必应壁纸做电脑壁纸的软件,今天闲的蛋疼,就折腾了一下。

接口

我们用到的接口是https://cn.bing.com/HPImageArchive.aspx?idx=0&n=1
这里的idx=0表示是显示当天的时间,如果要显示昨天的就将idx=0改为idx=1,以此类推。
注意:bing支持查看历史图片15天以内的,数字就有范围限制了(0-15)。

获取当日图片

我们有了接口就可以直接利用正则表达式去匹配相关字符串了。
下面给出一个获取并输出当日美图的php代码

  1. <?php
  2. $str=file_get_contents('https://cn.bing.com/HPImageArchive.aspx?idx=0&n=1');
  3. if (preg_match("/<url>(.+?)<\/url>/ies", $str, $matches)) {
  4. $imgurl='https://cn.bing.com'.$matches[1];
  5. }
  6. if ($imgurl) {
  7. header('Content-Type: image/JPEG');
  8. @ob_end_clean();
  9. @readfile($imgurl);
  10. @flush();
  11. @ob_flush();
  12. exit();
  13. } else {
  14. exit('error');
  15. }
  16. ?>

保存为bingpic.php,上传到服务器直接访问即可。

获取图片版权介绍

有了图片,没有文字怎么能满足饥渴的我,还是利用正则提取出图片版权信息

  1. <?php
  2. $url=file_get_contents('https://cn.bing.com/HPImageArchive.aspx?idx=0&n=1');
  3.  
  4. if (preg_match("/<copyright>(.+?)<\/copyright>/ies", $url, $matches)) {
  5. $imgcopyright=$matches[1];
  6. }
  7. if ($imgcopyright) {
  8. header("Content-type: text/html; charset=utf-8");
  9. echo $imgcopyright;
  10. } else {
  11. exit('error');
  12. }
  13. ?>

tip:修改相关参数即可实现对应的文字说明

自动保存bing图片

自动在php文件同级目录下创建一个当前年月的文件夹,保存每天的bing美图并输出

  1. <?php
  2. error_reporting(0);
  3. $path=date('Ym');
  4. if (!file_exists($path)) {
  5. mkdir($path, 0777);
  6. }
  7. $pathurl = $path.'/'.date('d').'.jpg';
  8. if (!is_file($pathurl)) {
  9. $str=file_get_contents('https://cn.bing.com/HPImageArchive.aspx?idx=0&n=1');
  10. if (preg_match("/<urlBase>(.+?)<\/urlBase>/ies", $str, $matches)) {
  11. $imgurl='https://s.cn.bing.com'.$matches[1].'_1920x1080.jpg';
  12. copy($imgurl, $pathurl);
  13. }
  14. }
  15. header('Content-Type: image/JPEG');
  16. @ob_end_clean();
  17. @readfile($pathurl);
  18. @flush();
  19. @ob_flush();
  20. exit();
  21. ?>

就写到这了,大家自行操作玩耍,不懂的可以随时找我交流哦~

黄 先森

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: