简单建立属于自己的API(随机图片/内容API)

March 12, 2020 • Read: 231 • 技术学习阅读设置

以图片API为例,在博客中调用外链API有时会出现不稳定或速度慢的情况,我们不妨添加一个建立在本地或图床上的API,这样做的优点是内容完全由自己管理,也能在一定程度上提升图片质量和访问速度。

「一」本地化随机图片API

在自定义目录下建立文件夹,如"ranimg",然后在该目录下新建一个PHP文件(如api.php),代码如下:

<?php
$img_array = glob("img/*.{gif,jpg,png}",GLOB_BRACE);
$img = array_rand($img_array);
$dz = $img_array[$img];
header("Location:".$dz);
?>

此段代码含义为:在这个PHP文件所在目录下找到img文件夹,并随机读取img文件夹中后缀为gif、jpg和png的图片文件。
当然,图片存放的目录可以自定义,只需同步修改第二行代码即可。
保存文件后重启nginx即可生效。

以小站图片API为例,其文件结构为

网站根目录
 +-- ranimg
     +-- api.php
     +-- img
         +-- 一堆图片

这样的结构应该通过访问 worldline.top/ranimg/api.php 查看效果

「二」外链列表形式随机图片API

与上面的方法大同小异,代码如下:

<?php
$arr=file('images.txt');
$n=count($arr)-1;
for ($i=1;$i <=1;$i++){
$x=rand(0,$n);
header("Location:".$arr[$x],"\n");
}
?>

根据此代码,需要在同一目录下放入images.txt文本文档,内容为网络链接列表,一行一个链接,如:

https://images.com/1.jpg
https://images.com/2.jpg
https://images.com/3.jpg

本文用到的Github项目:
用字符画出树形结构图:https://github.com/mbr/asciitree
示例:

asciitree
 +-- sometimes
 |   +-- you
 +-- just
 |   +-- want
 |       +-- to
 |       +-- draw
 +-- trees
 +-- in
     +-- your
         +-- terminal

Last Modified: June 30, 2020