搭建随机图片API

暮色 发布于 2023-01-10 2292 次阅读


前言:目前搭建方法有两种,一个是存在于服务器或者虚拟机空间调用的,一个是使用其他图片托管平台或者使用他人的url存在于文本中再调用。(作为api调用的套了CDN后只可浏览器访问)

1.本地随机图片

首先创建一个文件夹 photos 和一个名为 api.php 的文件 然后在photos的文件夹内放图片,在api.php内编写如下代码

<?php
$img_array = glob("photos/*.{gif,jpg,png}",GLOB_BRACE);//photos是自己设置文件夹可以自行更改
$img_count = count($img_array);
if ($img_count > 0) {
  $img = rand(0, $img_count - 1);
  $dz = $img_array[$img];
  header("Location:".$dz);
}
?>

保存即可,通过api随机调用img文件夹中的图片,最后访问地址:http://域名/api.php就可以啦,套个CDN加速后,速度也够快,但是会消耗服务器或者虚拟机的内存,所以如果是用本地就做好压缩图片降低图片大小。

2.外部URL链接

首先创建 photos.txt 和 api.php 文件 然后在photos.txt文档内放图片外链地址 (一行一个) ,在api.php加入下列代码

<?php
// 此php和保存链接的txt文件放在同一目录下
$filename = "photos.txt";  /*保存链接的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"));
}
?>

保存即可,最后访问地址:http://域名/api.php即可! 这里photos. txt中可以填写托管平台给的URL

同时图片也不建议过大,会增加访问时间。

如果使用非浏览器访问时,如果托管平台采取了防盗链,就无法获取到原图。

以上就是所有的内容了

图片分享

此作者没有提供个人介绍。
最后更新于 2023-01-10