随机图片API接口搭建

发布于 2021-10-02  884 次阅读


事情是这样的,站点之前采用的是一个第三方的随机图片API导致,现在的情况是站点上面的随机图片都挂掉了。所以为了站点的稳定,就必须要搭建一个稳定的随机图片的API。

下面开始搭建过程。

准备工作

准备 一台服务器 已经搭建好的php环境

基本原理

1.用一个文本文档存放图片的链接
2.当用户请求API时,php就去读取txt文件,然后生成随机数来随机选取一个图片链接
3.302重定向到目标图片地址

开工

创建文件img.txt用于存放图片地址,创建index.php

<?php
//存有美图链接的文件名img.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"));
}

?>

将img.txt和index.php放在同一个网站目录下,通过访问域名/index.php即可。

后续

自从换了自己弄的这个API之后,站点整体变的特别卡,其实也很好理解,图片的质量太高了,需要进行一些处理。这里推荐webp压缩图片,已改善网页加载速度。
流量是真的遭不住啊!!!
还有一个问题是接口的跨域调用问题,也会影响站点的读取速度,我们以后再说关于跨域调用的解决方案。