Products
GG网络技术分享 2025-03-18 16:16 0
主要有两种,一种是从服务器本地调取图片,吃的是服务器的带宽,适合服务器配置不错或平时并发调用不高的朋友;第二种是通过链接调取,简单理解就是调用外部的图片链接,如cdn或图床,适配服务器配置不高的朋友。
以宝塔面板为例,记录下实现过程。
方案一、服务器本地图片调用<?php$img_array = glob("img/*.{webp,gif,jpg,png}",GLOB_BRACE);
$img = array_rand($img_array);
$dz = $img_array[$img];
header("Location:".$dz);
?>
方案二、通过图片链接调用
<?php//存有链接的文件名,这里是存放图片链接的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"));
}
以上方案任选其一,完成后,直接访问当时时间网站填入的域名即可。
首先我们将我们找来的图片放到一个我们电脑(Windows系统)的文件夹里,然后我们需要将这些图片按照顺序重命名,重命名成(1).jpg,(2).jpg的格式(别的类型的图片也可以,但是一定要统一类型),批量重命名的方法就是将这些图片全部选中,右键点击重命名,然后把原有的名字除了文件扩展名全部删掉,再点击回车,这个时候我们就能看到已经批量命名好了
2.然后在我们的一个网站的根目录下创建一个api文件夹,在api文件夹中在创建一个img文件夹,再把我们重命名好的图片上传到img文件夹中,之后在api文件夹中创建一个img.php文件,在这个文件里输入如下代码
<?php$seed = time();
$num = rand(1,173);
$picpath = "http://api.ggplus.cn/api/img/ (".$num.").jpg";
echo $picpath
?>
你需要把代码上面的173改成你的图片数量,把api.ggplus.cn改成你的网站URL,把jpg改成你图片的扩展名
3.现在我们就可以通过访问http://你网站的URL/api/img.php调用你的API了
然后你可以访问API返回的随机图片的URL看看有没有出现图片,有的话就代表成功了
PS:如果你不想要这种返回随机图片URL的API ,你可以通过重定向改成直接返回随机图片的API(看不懂的话就直接把下面的代码覆盖到img.php中),代码如下
<?php$seed = time();
$num = rand(1,173);
$picpath = "http://api.ggplus.cn/api/img/ (".$num.").jpg";
die(header("Location: $picpath"));
?>
同样的,你需要把代码上面的173改成你的图片数量,把api.ggplus.cn改成你的网站URL,把jpg改成你图片的扩展名
然后你再访问http://你网站的URL/api/img.php就会直接返回图片了Demand feedback