实现方法一(服务器本地图片调用)
存放位置: 网站根目录下(一般情况,也可以直接存在你需要随机的图片文件夹内),本示例使用根目录下的photo文件夹。
创建文件: 创建一个*.php的文件,命名随意了,主要是好记,本示例取名叫api.php,然后编辑将一下代码复制入内。
<?php
header('Content-type: image/jpg'); #2、图片统一格式jpg,也可以按照你文件夹格式定义#
$img_array = glob("./photo/*.{gif,jpg,png}",GLOB_BRACE); #3、图片调用位置及类型参数#
$img = array_rand($img_array);
$image = file_get_contents($img_array[$img]);
echo $image;
?>
第二行(#2):
header('Content-type: image/jpg');
需注意存放图片的文件夹内统一格式,如图片为jpg,则image/jpg。如图片为png,则image/png。
第三行(#3):
其中自定义图片的目录及类型在第三行,或将下面代码修改复制替换:
原代码位置 :$img_array = glob("./*.{gif,jpg,png}",GLOB_BRACE);
如需变动图片位置,对该代码修改,如photo是图片目录名,可以更改为photo,如你命名为其他,按照你的文件夹名称命名:$img_array = glob("./photo/*.{gif,jpg,png}",GLOB_BRACE);
其中可图片格式可扩大化兼容,可以修改成{gif,jpg,png,jpeg,webp,bmp}多种支持。
然后复制替换第三行,这样就可以调用 photo 目录下的图片了。
示例:
调用方式: 浏览器输入 http://你的域名/api.php ,随机调用文件夹的(jpg、png、gif格式)照片显示。
创建结构:
根目录
-文件夹:photo #对应API.PHP文件img_array的调用地址,存放图片文件
-文件:*.jpg/*.png/*.gif/*.webp #对应API.PHP文件中第二第三行的格式,放置统一格式的图片
-文件 :api.php #创建的php调用(复制代码)
实现方法二(其他服务器或图床图片调用)
存放位置: 网站根目录(我就是偷懒,你也可以找个目录放置),创建的文件均存放在此。
创建文件:
1、创建记录图片地址的txt文本文档。
这里比方说你采用的是图床,只要把你的图片链接地址复制进txt就好了,一行一链接。如果用其他的也是一样,用图片正确的网络地址(可先检查能否正常打开)。
按照示例,我给该文本文档取名叫做"photolist.txt",在接口文件中,调用该文本文档。存放网站根目录。
2、创建接口PHP文档。
然后在创建api.php(按需取名吧,随便啥名.php)作为api接口,并进行编辑保存。存放网站根目录。
代码如下:
<?php
//存有链接的文件名,例如 “photolist.txt”
$filename = "photolist.txt";
if(!file_exists($filename)){
die('查找photolist,如果找不到肯定是你忘记了');
}
//从文本获取链接
$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"));
}
复制完成后,将第三行$filename = "photolist.txt";
里面的photolist.txt记得替换成与你命名一致的文本文档。
调用方式: 浏览器输入 http://你的域名/api.php ,随机调用文件夹的(jpg、png、gif格式)照片显示。
创建结构:
根目录
-文件 :photolist.txt #存放图片链接的文本文档
-文件 :api.php #创建的php调用(复制代码)
实现方法三(使用免费的API接口)
你也可以通过自建图床+创建随机来实现。总之,办法总比困难多,实在搞不定,就自己百度 ”随机图片API“ ,网上很多很多。这个方法是最省事的,唯一的缺点就是图片内容你无法控制。
然后还有其他方法可以实现,但是我懒,就这样,差不多得了。