1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
| <?php // ini_set('date.timezone','Asia/Shanghai'); //设置时区,确定为中国上海时区 // 方案一 $path0 = 'BingWallpaper'; // 定义存放图片的一级目录,这个目录是固定的,需要手动创建并设置写入权 $path = $path0 .'/'. date("Ym"); // 图片缓存文件夹,以当前年月命名并自动新建文件夹 $filename = date("Ymd") .'.jpg'; // 用年月日来命名新的文件名 if (!file_exists($path .'/'. $filename)) { // 如果文件不存在,则说明今天还没有进行缓存 if(!file_exists($path)) { // 如果目录不存在 mkdir($path, 0777); // 创建缓存目录 } $str = file_get_contents('http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1'); // 读取必应api,获得相应数据 $str = json_decode($str, true); $imgurl = 'http://cn.bing.com'. $str['images'][0]['url']; // 获取图片url $img = grabImage($imgurl, $path .'/'. $filename); // 读取并保存图片 } function grabImage($url, $filename = "") { if($url == "") return false; // 如果$url地址为空,直接退出 if ($filename == "") { // 如果没有指定新的文件名 $ext = strrchr($url, "."); // 得到$url的图片格式 $filename = date("Ymd") . $ext; // 用天月面时分秒来命名新的文件名 } ob_start(); // 打开输出 readfile($url); // 输出图片文件 $img = ob_get_contents(); // 得到浏览器输出 ob_end_clean(); // 清除输出并关闭 $size = strlen($img); // 得到图片大小 $fp2 = @fopen($filename, "a"); fwrite($fp2, $img); // 向当前目录写入图片文件,并重新命名 fclose($fp2); return $filename; // 返回新的文件名 }
// // 方案二 // $path='BingWallpaper'; // 定义存放图片的一级目录,这个目录是固定的,需要手动创建并设置写入权 // $path1=$path.'/'.date('Ym'); // 定义存放图片的二级目录,以当前所处年份来命名 // if(!file_exists($path1)) { // mkdir($path1, 0777); // } // 判断二级目录是否存在,若不存在,则自动创建并设置写入权 // // $path2=$path1.'/'.date('m'); // 定义存放图片的三级目录,以当前所处月份来命名 // // if(!file_exists($path2)){ // // mkdir($path2, 0777); // // } // 判断三级目录是否存在,若不存在,则自动创建并设置写入权 // // $pathurl=$path2.'/'.date('Ymd').'.jpg'; // 定义图片名,以当前所处日份来命名 // $pathurl=$path1.'/'.date('Ymd').'.jpg'; // 定义图片名,以当前所处日份来命名 // if(!is_file($pathurl)) { // $str=file_get_contents('http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1'); // 获取图片地址,并判断图片是否已经存在 // if(preg_match("/<urlBase>(.+?)<\/urlBase>/isu", $str, $matches)) { // ies // $imgurl='http://cn.bing.com'.$matches[1].'_1920x1080.jpg'; // copy($imgurl, $pathurl); // } //读取对应的图片并写入指定目录 // } // // 显示图片 // // header('Content-Type:image/jpeg'); //定义输出类型 // // @ob_end_clean(); //擦除缓存 // // @readfile($pathurl); //输出本地图片 // // @flush(); //缓存 // // @ob_flush(); //输出缓存 // // exit(); //退出
// 方案三: + 写入图片信息 参考 https://mkblog.cn/492/ // $path = 'temp'; //设置图片缓存文件夹 // $filename = date("Ymd") . '.jpg'; //用年月日来命名新的文件名 // if (!file_exists($path.'/'. $filename)) { //如果文件不存在,则说明今天还没有进行缓存 // if(!file_exists($path)) //如果目录不存在 // { // mkdir($path, 0777); //创建缓存目录 // } // $str = file_get_contents('http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1'); //读取必应api,获得相应数据 // $str = json_decode($str,true); // $imgurl = 'http://cn.bing.com'.$str['images'][0]['url']; //获取图片url // $img = grabImage($imgurl, $path.'/'.$filename); //读取并保存图片 // $handle = fopen("dat.txt", "a"); //用于存放图片信息,如果不需要保存图片的相关信息,可以把下面这些去掉。 // if ($handle) { // $copyright = $str['images'][0]['copyright']; //说明 // $startdate = $str['images'][0]['startdate']; // $fullstartdate = $str['images'][0]['fullstartdate']; // $enddate = $str['images'][0]['enddate']; // $urlbase = $str['images'][0]['urlbase']; // $copyrightlink = $str['images'][0]['copyrightlink']; // $quiz = $str['images'][0]['quiz']; // $wp = $str['images'][0]['wp']; // $hsh = $str['images'][0]['hsh']; // $drk = $str['images'][0]['drk']; // $top = $str['images'][0]['top']; // $bot = $str['images'][0]['bot']; // $tempArr = array("imgurl"=>$imgurl,"copyright"=>$copyright, "startdate"=>$startdate, // "fullstartdate"=>$fullstartdate, "enddate"=> $enddate, "urlbase"=>$urlbase, // "copyrightlink"=> $copyrightlink, "quiz"=>$quiz, "wp"=> $wp, // "hsh"=>$hsh,"drk"=>$drk, "top"=> $top, "bot"=> $bot); //将相关信息放进数组中 // fwrite($handle, json_encode($tempArr) ."\r\n"); //最终以json格式保存在文本文档中 // fclose($handle); // } // } // function grabImage($url, $filename = "") { // if($url == "") return false; //如果$url地址为空,直接退出 // if ($filename == "") { //如果没有指定新的文件名 // $ext = strrchr($url, "."); //得到$url的图片格式 // $filename = date("Ymd") . $ext; //用天月面时分秒来命名新的文件名 // } // ob_start(); //打开输出 // readfile($url); //输出图片文件 // $img = ob_get_contents(); //得到浏览器输出 // ob_end_clean(); //清除输出并关闭 // $size = strlen($img); //得到图片大小 // $fp2 = @fopen($filename, "a"); // fwrite($fp2, $img); //向当前目录写入图片文件,并重新命名 // fclose($fp2); // return $filename; //返回新的文件名 // }
// ****************************************************************************************** // // 仅使用其作为背景图API,新建PHP文件 // // Bing壁纸API - 1 // $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]; // } // if($imgurl){ // header('Content-Type: image/JPEG'); // @ob_end_clean(); // @readfile($imgurl); // @flush(); @ob_flush(); // exit(); // }else{ // exit('error'); // } // // Warning: preg_match(): The /e modifier is no longer supported, use preg_replace_callback instead in /Library/WebServer/Documents/phpMyProjects/php-test/index4.php on line 4 // // error
// // Bing壁纸API - 2 // $str = file_get_contents('http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1'); // 从bing获取数据 // if(preg_match('/<url>([^<]+)<\/url>/isU', $str, $matches)) { // 正则匹配抓取图片url // $imgurl = 'http://cn.bing.com'.$matches[1]; // } else { // 如果由于某些原因,没抓取到图片地址 // $imgurl = 'http://img.infinitynewtab.com/InfinityWallpaper/2_14.jpg'; // 使用默认的图像(默认图像链接可修改为自己的) // } // echo "$imgurl"; // echo "<img src='$imgurl' />"; // header("Location:{$imgurl}"); // 跳转至目标图像
|