三分钟搭建随机图片api-自定义图片类型

130次阅读
没有评论

共计 1016 个字符,预计需要花费 3 分钟才能阅读完成。

搭建随机图片api

为什么要自己搭建api?
因为网上的api要么不稳定,要么就是图片太露~了,简直是在法律的边缘疯狂试探,所以决定自己搞一个,自己把关,用自己喜欢的图片,那么就需要学习一下怎么搭建自己的随机图片api。

在网站根目录新建api.php,代码如下:,

<?php
// 获取传递到脚本中的参数
$type = isset($_GET['type']) ? $_GET['type'] : '';
// 定义图片文件夹
$img_dir = 'img';

// 如果有参数,选择相应的图片文件夹;否则遍历所有子目录
if (!empty($type)) {
    $dir = $img_dir.'/'.$type;
} else {
    $dir = $img_dir;
}

// 遍历指定的图片文件夹或所有子目录,并随机选择一张图片
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir));
$files = array();
foreach($iterator as $file) {
    // 排除目录和非图片文件
    if ($file->isDir() || !in_array($file->getExtension(), array('gif', 'jpg', 'jpeg', 'png', 'webp', 'bmp'))) {
        continue;
    }
    $files[] = $file->getPathname();
}
if (count($files) == 0) {
    die('没有找到图片文件。MuaOoO ~ '.$dir.' 文件夹');
}
$random_file = $files[array_rand($files)];

// 输出随机选择的图片
header('Content-Type: image/png');
echo(file_get_contents($random_file));
?>

新建文件夹img/,给该文件夹重新赋予权限

chown -R www-data:www-data img/

可以通过https://域名/api.php,获得随机图片,此外还可以传入type参数,不传入时,默认访问img目录所有子目录下的图片,并随机返回。

例如:https://域名/api.php?type=yuanshen,需要在img目录下新建yuanshen子目录,并在子目录上传图片,记得给权限。

本站api:直接访问api.php即可,类型还不确定目前就是自己用。

正文完
 
landery
版权声明:本站原创文章,由 landery 2023-06-27发表,共计1016字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)