• 前几天闲来无事 突然想找一个自己喜欢的随机图片api 但翻了半天也没找到自己喜欢的,索性干脆自己做一个
  • 参考了网上一些文章,同时结合自己实际情况,也加上了一些解释。

准备

  • 一台服务器
  • 搭建好的PHP环境

基本原理

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


实现

下面给出最简单的实现方式,详细说明见注释

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

1
2
3
4
5
6
https://pic.rmb.bdstatic.com/bjh/2000dbabb6e55dbb5d22a477d5da2980.png
https://pic.rmb.bdstatic.com/bjh/1db4c20c76a11a6c614d36637d0e3275.png
https://pic.rmb.bdstatic.com/bjh/60c3e5b2a53d1712a313e6aa73034e0e.png
https://pic.rmb.bdstatic.com/bjh/8c973def0c8db3841ede52ac87986651.png
https://pic.rmb.bdstatic.com/bjh/a8ccc755e00fddbd706b4c361b129141.png
https://pic.rmb.bdstatic.com/bjh/ce101abfce373e1ad456c6484bb86f7b.png

创建 index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?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即可

DEMO

图床推荐

我目前用的是微博图床+即刻图床

微博因为有防盗链 这边建议使用微博图床 插件

微博图床

亦可以使用即刻图床 插件 因为它有许多大厂的接口 速度快!

即刻图床