今天刷到一个博主的一篇关于搭建自己随机图片API的教程,自己照葫芦画瓢尝试了下,感觉还行,于是记录也顺便分享下。
主要有两种,一种是从服务器本地调取图片,吃的是服务器的带宽,适合服务器配置不错或平时并发调用不高的朋友;第二种是通过链接调取,简单理解就是调用外部的图片链接,如cdn或图床,适配服务器配置不高的朋友。
以宝塔面板为例,记录下实现过程。
方案一、服务器本地图片调用
- 登录宝塔面板后新建网站(添加站点);
- 进入网站根目录;
- 删除根目录下所有文件;
- 新建一个文件夹,如命名为img,用来存放需要调用的随机图片;
- 新建一个index.php文件,这个文件就是api地址了,把以下代码拷贝到index.php下。
<?php
$img_array = glob("img/*.{webp,gif,jpg,png}",GLOB_BRACE);
$img = array_rand($img_array);
$dz = $img_array[$img];
header("Location:".$dz);
?>
方案二、通过图片链接调用
- 登录宝塔面板后新建网站(添加站点);
- 进入网站根目录;
- 删除根目录下所有文件;
- 新建一个img.txt文件,文件内存放图片链接(注:一行一个链接);
- 新建一个index.php文件,这个文件就是api地址了,把以下代码拷贝到index.php下。
<?php
//存有链接的文件名,这里是存放图片链接的txt文件
$filename = "img.txt";
if(!file_exists($filename)){
die('文件不存在');
}
//从文本获取链接
$pics = [];
$fs = fopen($filename, "r");
while(!feof($fs)){
$line=trim(fgets($fs));
if($line!=''){
array_push($pics, $line);
}
}
//从数组随机获取链接
$pic = $pics[array_rand($pics)];
//返回指定格式
$type=$_GET['type'];
switch($type){
//JSON返回
case 'json':
header('Content-type:text/json');
die(json_encode(['pic'=>$pic]));
default:
die(header("Location: $pic"));
}
以上方案任选其一,完成后,直接访问当时时间网站填入的域名即可。