接口
http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1 http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1
一个是 json 方式,一个是 XML 的方式,我们用到的接口是https://cn.bing.com/HPImageArchive.aspx?idx=0&n=1
这里的idx=0表示是显示当天的时间,如果要显示昨天的就将idx=0改为idx=1,以此类推。
注意:bing支持查看历史图片15天以内的,数字就有范围限制了(0-15)。
获取当日图片
我们有了接口就可以直接利用正则表达式去匹配相关字符串了。
下面给出一个获取并输出当日美图的php代码
<?php error_reporting(0); if($_GET['idx']==null){ $str=file_get_contents('http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1'); } $str=file_get_contents('http://cn.bing.com/HPImageArchive.aspx?idx='.$_GET['idx'].'&n=1'); if(preg_match("/<url>(.+?)<\/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'); } ?>
保存为bing.php,上传到服务器直接访问即可。
获取1920x1080高清图片版:
<?php error_reporting(0); $s = $_GET['s']; if($_GET['idx'] == ''){ $str=file_get_contents('http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1'); } else{ $str=file_get_contents('http://cn.bing.com/HPImageArchive.aspx?idx='.$_GET['idx'].'&n=1'); } if(preg_match("/<url>(.+?)<\/url>/ies",$str,$matches)){ $imgurl='http://cn.bing.com'.$matches[1]; if($s == 'big'){ $imgurl=str_replace("1366x768","1920x1080",$imgurl); } } if($imgurl){ header('Content-Type: image/JPEG'); @ob_end_clean(); @readfile($imgurl); @flush(); @ob_flush(); exit(); }else{ exit('error'); } ?>
保存为bing.php,上传到服务器直接访问bing.php?s=big即可访问高清图。
调用方法
<img src="bing.php" alt="tu" />
获取图片版权介绍
获取完了图片,若有需要,再利用正则提取出图片版权信息
<?php error_reporting(0); $url=file_get_contents('https://cn.bing.com/HPImageArchive.aspx?idx=0&n=1'); if (preg_match("/<copyright>(.+?)<\/copyright>/ies", $url, $matches)) { $imgcopyright=$matches[1]; } if ($imgcopyright) { header("Content-type: text/html; charset=utf-8"); echo $imgcopyright; } else { exit('error'); } ?>
自动保存bing图片
自动在php文件同级目录下创建一个当前年月的文件夹,保存每天的bing美图并输出
<?php error_reporting(0); $path=date('Ym'); if (!file_exists($path)) { mkdir($path, 0777); } $pathurl = $path.'/'.date('d').'.jpg'; if (!is_file($pathurl)) { $str=file_get_contents('https://cn.bing.com/HPImageArchive.aspx?idx=0&n=1'); if (preg_match("/<urlBase>(.+?)<\/urlBase>/ies", $str, $matches)) { $imgurl='https://s.cn.bing.com'.$matches[1].'_1920x1080.jpg'; copy($imgurl, $pathurl); } } header('Content-Type: image/JPEG'); @ob_end_clean(); @readfile($pathurl); @flush(); @ob_flush(); exit(); ?>
其他
最后再给大家分享一个 Bing 搜索引擎的小功能:
www.bing.com/?rb=0 //这个可以关闭 Bing 搜索引擎的背景图片哦
www.bing.com/?rb=1 //这个可以开启 Bing 搜索引擎的背景图片哦
转载请注明:轮回阁 » PHP代码获取bing每日背景
特别说明:所有资源均无解压密码且可直接下载,若有会特别注明,部分回复可见内容仅为提供更多的下载点。