php提取bing背景,PHP获取Bing每日壁纸,可设置成API作为网站背景

必应的每日壁纸不得不说,都很经典,通过API每天还可以自动更新,作为网站背景非常不错

本站提供该API直接使用,地址为:http://57scs.com/api/bingapi.php  (支持SSL)

接口

我们用到的接口是https://cn.bing.com/HPImageArchive.aspx?idx=0&n=1

这里的idx=0表示是显示当天的时间,如果要显示昨天的就将idx=0改为idx=1,以此类推。

注意:bing支持查看历史图片15天以内的,数字就有范围限制了(0-15)。

获取当日图片

我们有了接口就可以直接利用正则表达式去匹配相关字符串了。

下面给出一个获取并输出当日美图的php代码

$str=file_get_contents('https://cn.bing.com/HPImageArchive.aspx?idx=0&n=1');

if (preg_match("/(.+?)/ies", $str, $matches)) {

$imgurl='https://cn.bing.com'.$matches[1];

}

if ($imgurl) {

header('Content-Type: image/JPEG');

@ob_end_clean();

@readfile($imgurl);

@flush();

@ob_flush();

exit();

} else {

exit('error');

}

?>

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

获取图片版权介绍

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

$url=file_get_contents('https://cn.bing.com/HPImageArchive.aspx?idx=0&n=1');

if (preg_match("/(.+?)/ies", $url, $matches)) {

$imgcopyright=$matches[1];

}

if ($imgcopyright) {

header("Content-type: text/html; charset=utf-8");

echo $imgcopyright;

} else {

exit('error');

}

?>

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

自动保存bing图片

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

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("/(.+?)/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();

?>

Curl版本获取bing图片

使用Curl版本获取,速度更快,更稳定

$url = 'https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1';

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);

curl_setopt($curl, CURLOPT_HEADER, 0);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);

$data = curl_exec($curl);

curl_close($curl);

$array = json_decode($data);

$imgurl = $array->{"images"}[0]->{"url"};//图片 URL

$img = 'https://cn.bing.com'.$imgurl;

$copyright = $array->{"images"}[0]->{"copyright"};//图片描述版权

if($img){

header('Location: '.$img);

exit();

} else {

exit('error');

}

?>

Curl版本获取bing图片并保存

使用Curl版本获取,速度更快,更稳定

//ini_set("display_errors", "On");//打开错误提示

//ini_set("error_reporting",E_ALL);//显示所有错误

$path = date("Ym"); //设置图片缓存文件夹

$filename = date("d") . '.jpg'; //用年月日来命名新的文件名

if (!file_exists($path.'/'. $filename)) //如果文件不存在,则说明今天还没有进行缓存

{

if(!file_exists($path)) //如果目录不存在

{

mkdir($path, 0777); //创建缓存目录

}

//获取图片地址

$url = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1';

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);

curl_setopt($curl, CURLOPT_HEADER, 0);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);

$data = curl_exec($curl);

curl_close($curl);

$str = json_decode($data,true);

$copyright = $str->{"images"}[0]->{"copyright"};//图片描述版权

$imgurl = 'http://www.bing.com'.$str['images'][0]['url']; //获取图片url

//抓取图片并写入

$fdl = curl_init();//设置抓取的url

curl_setopt($fdl, CURLOPT_URL, $imgurl);//打开文件描述符

$fp = fopen ($path.'/'. $filename, 'w+');

curl_setopt($fdl, CURLOPT_FILE, $fp);//这个选项是意思是跳转,如果你访问的页面跳转到另一个页面,也会模拟访问。

curl_setopt($fdl, CURLOPT_FOLLOWLOCATION, true);

curl_setopt($fdl, CURLOPT_TIMEOUT,30);

//执行命令

curl_exec($fdl);//关闭URL请求

curl_close($fdl);//关闭文件描述符

fclose($fd);

exit ("今天的图片已获取");

} else {

exit ("今天的图片已获取");

}

?>

需要的可以先测试下,不懂的可以交流~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值