php 获取Bing首页壁纸并保存至本地

Posted Yan327

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 获取Bing首页壁纸并保存至本地相关的知识,希望对你有一定的参考价值。

 1 <?php
 2 
 3 define(‘WALLPAPER_PATH‘,‘C:/xxx/xxx‘); //本地目录
 4 
 5 class BingPicture{
 6     
 7     private $content = "";
 8     private $imgurl = "";
 9     
10     public function __construct() {
11         $this->_getWallpaperUrl();
12     }
13     
14     //获取壁纸
15     public function _getWallpaperUrl(){
16         if (!function_exists(‘file_get_contents‘)) 
17             return false;
18         
19         $this->content=file_get_contents(‘https://cn.bing.com/HPImageArchive.aspx?idx=0&n=1‘);
20         
21         if (preg_match("/<url>(.+?)</url>/ies", $this->content, $matches)) {
22             $this->imgurl=‘https://cn.bing.com‘.$matches[1];
23         }
24     }
25     
26     //获取壁纸信息
27     public function getWallpaperInfo(){
28         if (preg_match("/<copyright>(.+?)</copyright>/ies", $this->content, $matches)) {
29             $imgcopyright=$matches[1];
30         }
31         
32         if($imgcopyright){
33             return $imgcopyright;
34         }
35     }
36     
37     //保存壁纸    
38     public function saveWallpaper() {
39         
40         if(!file_exists(WALLPAPER_PATH)){
41             mkdir(WALLPAPER_PATH, 0777);
42         }
43         
44         $url = $this->imgurl;
45         $pic = ‘Bing‘.date("Ymd").‘.jpg‘;
46         $file = WALLPAPER_PATH.‘/‘.$pic;
47         
48     if ($url == "")
49         return false;
50             
51         if(file_exists($file))
52                 return true;
53 
54     ob_start ();
55     readfile ( $url );
56     $img = ob_get_contents ();
57     ob_end_clean ();
58     $size = strlen ( $img );
59         
60         $fp2 = @fopen ( WALLPAPER_PATH . DIRECTORY_SEPARATOR . $pic, "a" );
61         fwrite ( $fp2, $img );
62         fclose ( $fp2 );
63     }
64     
65 }

以及创建任务计划定时执行脚本

 1 @echo off
 2 
 3 rem 定时获取并保存Bing壁纸脚本
 4 
 5 cd /d F:
 6 
 7 rem php.exe所在目录
 8 set PHP_PATH=F:xxx
 9 
10 rem 脚本所在目录
11 start %PHP_PATH% -q F:xxxxxxx.php
12 
13 exit

 

以上是关于php 获取Bing首页壁纸并保存至本地的主要内容,如果未能解决你的问题,请参考以下文章

PHP使用PHP抓取Bing每日图像并为己所用

获取bing图片并自动设置为电脑桌面背景(使用 URLDownloadToFile API函数)

win8的bing桌面(9m左右)怎么实现自动更新bing桌面壁纸,壁纸都保存到哪了。求大神解答

必应的两个壁纸接口,可用来获取海量的高质量壁纸和相关故事

开源小软件 Bing每日壁纸 让桌面壁纸保持更新

怎样保存必应每天自动更换的壁纸?