搭建一个属于自己的随机壁纸api

xioy
1年前发布 /正在检测是否收录...
温馨提示:
本文最后更新于2024年12月05日,已超过117天没有更新,若内容或图片失效,请留言反馈。

效果演示

本案例使用是分类的第二种:以图片链接进行随机的效果演示,如果你不想自己部署可以直接使用下方由TNT安全团队免费提供的api接口。

https://api.tntsec.com/img/index.php

说明

问: 全部和分类是什么意思?
答: 想要省事就把所有图片全都堆到一个地方,访问接口直接在这个文件中随机抽取一个图片,这就是全部的意思。如果你不嫌麻烦可以把图片分类存放,例如动漫图片放在一起,风景图片放在一起。访问接口输入指定参数就可以查看到指定类型的图片。

全部

第一种:以图片源文件进行随机

第一步:创建一个名为img的文件夹(这个文件里放你需要的图片)
第二步:创建一个名为index.php文件,写入以下代码 (这个文件就是api)

<?php
// 缓存文件
$cacheFile = 'cache.txt';

// 检查缓存文件是否存在且未过期(1小时)
$cacheValid = file_exists($cacheFile) && (time() - filemtime($cacheFile)) < 3600;

if ($cacheValid) {
    // 从缓存文件中读取图片URL
    $images = file($cacheFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
} else {
    // 从img文件夹中读取所有图片
    $images = glob('img/*.{jpg,jpeg,png,gif}', GLOB_BRACE);

    // 如果没有找到图片,则输出错误信息并退出
    if (empty($images)) {
        die('没有图片');
    }

    // 将图片列表写入缓存文件
    file_put_contents($cacheFile, implode(PHP_EOL, $images));
}

// 随机选择一个图片(不需要设置随机数种子)
$randomImage = $images[array_rand($images)];

// 重定向到随机图片
header('Location: ' . $randomImage);
exit;
?>

第二种:以图片链接进行随机

第一步:创建一个名为img.txt文件 (在这个文件里放你储存的图片链接,一行一条)
第二步:创建一个名为index.php文件,写入以下代码(这个文件就是api)

<?php
// 放置图片URL的文件
$imageFilePath = 'img.txt';

// 检查文件是否存在
if (!file_exists($imageFilePath)) {
    die('缺少所需文件');
}

// 从文件中读取图片URL
$images = file($imageFilePath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

// 如果没有找到图片URL,则输出错误信息并退出
if (empty($images)) {
    die('没有图片');
}

// 随机选择一个URL
$randomImage = $images[array_rand($images)];

// 重定向到随机图片
header('Location: ' . $randomImage);
exit;
?>

分类

第一种:以图片源文件进行随机

第一步:创建一个名为img的文件夹
第二步:然后在img文件夹下在创建具体分类的文件夹(每个分类的文件夹里放对应分类的图片)
第三步:创建一个名为index.php文件,写入以下代码(这个文件就是api)

在img文件夹下创建了a、b两个文件夹。假设a文件夹中放的都是动漫图片,b文件夹中放的都是风景图片。

<?php
// 从GET请求中获取img参数,默认为'all'
$img = isset($_GET['img']) ? $_GET['img'] : 'all';

// 文件夹数组,用于根据$img参数选择文件夹
$folders = [
    'all' => ['img/a', 'img/b'],
    'a' => ['img/a'],
    'b' => ['img/b']
];

// 根据$img参数选择文件夹
$selectedFolders = $folders[$img];

// 初始化图片数组
$images = [];

// 遍历选定的文件夹,读取所有图片
foreach ($selectedFolders as $folder) {
    $folderImages = glob("$folder/*.{jpg,jpeg,png,gif}", GLOB_BRACE);
    if (!empty($folderImages)) {
        $images = array_merge($images, $folderImages);
    }
}

// 如果没有找到图片,则输出错误信息并退出
if (empty($images)) {
    die('没有图片');
}

// 随机选择一个图片(不需要设置随机数种子)
$randomImage = $images[array_rand($images)];

// 重定向到随机图片
header('Location: ' . $randomImage);
exit;
?>

第二种:以图片链接进行随机

第一步:创建一个名为img的文件夹
第二步:然后在img文件夹下在创建具体分类的文件(每个文件中的内容一行一个)
第三步:创建一个名为index.php文件,写入以下代码(这个文件就是api)

在img文件夹下创建了a.txt、b.txt两个文件。假设a.txt文件中放的都是动漫图片链接,b.txt文件中放的都是风景图片链接。

资源获取

© 版权声明
THE END
喜欢就支持一下吧
点赞 2 分享 赞赏
评论 抢沙发
取消