前言
现在有很多站点都会用到图片,但又不想自己一个一个下载上传,这里就是用API接口将获取到的图片下载到本地,然后供自己使用,现在很多接口都是免费一定量超过就要收费,站长也穷,所以就捣鼓了这个!
接口
要先到网站获取接口的token
代码
需要新建一个文件夹放图片跟代码,例如新建acg(文件夹名)、acg-api.php(PHP文件),先新建一个acg然后在里面新建acg-api.php放入下方代码
<?phpif (($_GET['api'] === 'api-acg')){$curl = curl_init();curl_setopt_array($curl, array(CURLOPT_URL => "https://v2.alapi.cn/api/acg",CURLOPT_RETURNTRANSFER => true,CURLOPT_ENCODING => "",CURLOPT_MAXREDIRS => 10,CURLOPT_TIMEOUT => 30,CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,CURLOPT_CUSTOMREQUEST => "POST",CURLOPT_POSTFIELDS => "token=要自己去网站获取&format=json",CURLOPT_HTTPHEADER => array("Content-Type: application/x-www-form-urlencoded",),));$response = curl_exec($curl);$a = json_decode($response,true);curl_close($curl);$url = $a['data']['url']; //获取接口的图片链接if(!isset($_POST ['http'])){$url = str_replace("https","http",$url); //如果链接协议不是http就改成http}if($url=="") return false; //如果图片链接为空则不继续允行if($filename=="") {$ext=strrchr($url,"."); //获取图片后缀if($ext!=".gif" && $ext!=".jpg" && $ext!=".png") return false; //如果不是图片则不继续运行$filename = substr($url, strrpos($url, '/')+1); //获取图片名}ob_start(); //输出缓冲区readfile($url); //读取文件,并写入到输出缓冲$img = ob_get_contents(); //返回输出缓冲区的内容ob_end_clean(); //清空缓冲区并关闭输出缓冲$fp2=@fopen($filename, "a"); //打开文件 a:写入方式打开fwrite($fp2,$img); //将内容写入文件夹中fclose($fp2); //关闭文件夹}elseif (($_GET['api'] === 'acg-picture')){$localurl="*.{gif,jpg,png}"; //这将得到一个文件夹中的所有gif,jpg和png图片的数组$img_array=glob($localurl,GLOB_BRACE);$img=array_rand($img_array); //从数组中选择一个随机图片$imgurl=$img_array[$img];$imgurl='https://'.$_SERVER['SERVER_NAME'].'/images/acg/'.$imgurl; //这个需要你们自行修改header("location:$imgurl"); //在页面显示图片地址}?><?php if (($_GET['api'] === 'api-acg')){ $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://v2.alapi.cn/api/acg", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "token=要自己去网站获取&format=json", CURLOPT_HTTPHEADER => array( "Content-Type: application/x-www-form-urlencoded", ), )); $response = curl_exec($curl); $a = json_decode($response,true); curl_close($curl); $url = $a['data']['url']; //获取接口的图片链接 if(!isset($_POST ['http'])){ $url = str_replace("https","http",$url); //如果链接协议不是http就改成http } if($url=="") return false; //如果图片链接为空则不继续允行 if($filename=="") { $ext=strrchr($url,"."); //获取图片后缀 if($ext!=".gif" && $ext!=".jpg" && $ext!=".png") return false; //如果不是图片则不继续运行 $filename = substr($url, strrpos($url, '/')+1); //获取图片名 } ob_start(); //输出缓冲区 readfile($url); //读取文件,并写入到输出缓冲 $img = ob_get_contents(); //返回输出缓冲区的内容 ob_end_clean(); //清空缓冲区并关闭输出缓冲 $fp2=@fopen($filename, "a"); //打开文件 a:写入方式打开 fwrite($fp2,$img); //将内容写入文件夹中 fclose($fp2); //关闭文件夹 }elseif (($_GET['api'] === 'acg-picture')){ $localurl="*.{gif,jpg,png}"; //这将得到一个文件夹中的所有gif,jpg和png图片的数组 $img_array=glob($localurl,GLOB_BRACE); $img=array_rand($img_array); //从数组中选择一个随机图片 $imgurl=$img_array[$img]; $imgurl='https://'.$_SERVER['SERVER_NAME'].'/images/acg/'.$imgurl; //这个需要你们自行修改 header("location:$imgurl"); //在页面显示图片地址 } ?><?php if (($_GET['api'] === 'api-acg')){ $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://v2.alapi.cn/api/acg", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "token=要自己去网站获取&format=json", CURLOPT_HTTPHEADER => array( "Content-Type: application/x-www-form-urlencoded", ), )); $response = curl_exec($curl); $a = json_decode($response,true); curl_close($curl); $url = $a['data']['url']; //获取接口的图片链接 if(!isset($_POST ['http'])){ $url = str_replace("https","http",$url); //如果链接协议不是http就改成http } if($url=="") return false; //如果图片链接为空则不继续允行 if($filename=="") { $ext=strrchr($url,"."); //获取图片后缀 if($ext!=".gif" && $ext!=".jpg" && $ext!=".png") return false; //如果不是图片则不继续运行 $filename = substr($url, strrpos($url, '/')+1); //获取图片名 } ob_start(); //输出缓冲区 readfile($url); //读取文件,并写入到输出缓冲 $img = ob_get_contents(); //返回输出缓冲区的内容 ob_end_clean(); //清空缓冲区并关闭输出缓冲 $fp2=@fopen($filename, "a"); //打开文件 a:写入方式打开 fwrite($fp2,$img); //将内容写入文件夹中 fclose($fp2); //关闭文件夹 }elseif (($_GET['api'] === 'acg-picture')){ $localurl="*.{gif,jpg,png}"; //这将得到一个文件夹中的所有gif,jpg和png图片的数组 $img_array=glob($localurl,GLOB_BRACE); $img=array_rand($img_array); //从数组中选择一个随机图片 $imgurl=$img_array[$img]; $imgurl='https://'.$_SERVER['SERVER_NAME'].'/images/acg/'.$imgurl; //这个需要你们自行修改 header("location:$imgurl"); //在页面显示图片地址 } ?>
![图片[1]-PHP将API接口获取的图片下载到本地-随风去-396资源](https://qn.396zy.cn/2023/11/20231104184001346-screenshot20231104.png)
使用步骤
获取之后就是使用步骤了,也很简单直接获取就行
https://api.396zy.cn/acg/acg-api.php?api=api-acghttps://api.396zy.cn/acg/acg-api.php?api=api-acghttps://api.396zy.cn/acg/acg-api.php?api=api-acg
结语
路径需要你们自行修改,这里就不多说了
Thank you push me off a cliff let me see the whole sky.
感谢你将我推下悬崖让我看清整片天空
© 版权声明
THE END
喜欢就支持一下吧
- 最新
- 最热
只看作者