Axton
Always dream. Always explore.
无垠
如何正确玩耍必应每日图片

前段时间开发一个页面,有一个板块需要每天更换一张背景图片。于是立刻想到必应,这货每天会在首页上更新一张全屏风景照。于是,很欢喜地决定,就用它来装逼了!

那么问题来了,它每天的图片URL都会改变,那么怎么自动获取呢?必应提供了一个接口,只要访问

就会返回像这样的信息:

URL中,idx值代表日期,0为今日,-1为明日准备使用的图片,1为昨日,以此类推,最多到前16日。同时,如果加上format=js,可以获取json格式的信息,还包含提示性内容的坐标等。这里就不深究了。
其中,只需获取<url></url>之间的内容即可,用正则表达式分分钟搞定。PHP代码如下:

然后在需要的地方输出即可:

当然,如果是商业页面,还需提取<copyright></copyright>中的内容。方法同上,这里就不再赘述了。

集成到Wordpress

有了以上方法,我们就可以在几乎任何地方使用必应的每日图片了。比如,让Wordpress的登录页背景变成这个。只需将以下代码添加至主题的functions.php中即可:

效果如图。

/*2016.6.10更新:后来发现样式里面字体阴影用黑色比白色更好,上面代码已经更新(虽然图片没换…)*/

更进一步

假如,我是说假如,你要开发一个ASP页面,又要使用必应图片,该怎么办呢?正则表达式?别想了,ASP的正则表达式复杂得要命。那么,服务器端行不通,只能考虑客户端了。

客户端…你是不是想到了什么?没错,可以用CSS!只要把以下代码放到一个PHP页面中:

然后引用:

“可是…”你可能会说,“这样的话每次使用都要创建一个文件,不是很不方便吗?”

因此我们需要一个查询,让这个文件动态地更新。很简单,将代码改成如下即可:

如果PHP文件名叫css.php且与HTML文件在同一目录,要使用图片的元素class为first-page,则须这样引用:

这样就实现了跨语言的使用。

其实这还可以实现更多功能的,下次有机会再讲吧。

赞赏
本文链接:https://flyhigher.top/develop/94.html
本文采用 CC BY-NC-SA 3.0 Unported 协议进行许可

发表评论

textsms
account_circle
email

  • https://secure.gravatar.com/avatar/c6a5c984a7f8dee9a91ad35c408f1db9?s=80&d=mm&r=r

    好东西 :mrgreen: 不过网上有很多随机图片的源码,可以自己选图片 :oops:

    4周前回复
  • https://secure.gravatar.com/avatar/29198378510beb2c406112abb88f75b5?s=80&d=mm&r=r

    博客换了hexo,但是对这个功能没能移植过来。部署PHP,API的PHP只能访问该PHP跳转获取bing图,但是我想让文章内直接【img】方式调用该PHP然后直接输出该图片而要怎么写?对PHP不懂,希望指教一二。

    2年前回复
    • https://secure.gravatar.com/avatar/40576c4b7e844c7b7f5b3bc50c14b42e?s=80&d=mm&r=r
      Axton博主

      @LeeJon: 按上面的代码,$imgurl就是图片地址,所以只要跳转到这个地址就行了。PHP代码如下:
      < ?php
      $str=file_get_contents('http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1');
      if(preg_match("/(.+?)< \/url>/ies",$str,$matches)){
      $imgurl='http://cn.bing.com'.$matches[1];
      }
      header("Location:".$imgurl);
      ?>

      保存成PHP上传到服务器即可,用的时候直接调用这个PHP就可以了。希望有所帮助。

      2年前回复

无垠

如何正确玩耍必应每日图片
前段时间开发一个页面,有一个板块需要每天更换一张背景图片。于是立刻想到必应,这货每天会在首页上更新一张全屏风景照。于是,很欢喜地决定,就用它来装逼了! 那么问题来了,它每天…
扫描二维码继续阅读
2015-04-10