随机图片API搭建总结教程
前言
重构了一下教程,发现以前自己留下的太乱了。
本教程不教用参数的复杂方法,以易记,最短链接的方式调用。
PS:想分类API调用类型可镜像出不同文件夹,参考本站API。
1.本地文件夹调用
第一步:在网站根目录下创建一个文件夹,一个PHP文件:img,index.php。
第二步:将以下内容写入index.php中。有两个地方可供修改。
第三步:将喜欢的图片放入img文件夹中,访问绑定的域名即可随机展示。
这一类方法,方便快捷,但图片多或者访问量大会非常卡顿,不利于往后发展使用
<?php
$img_array = glob("img/*.{gif,jpg,png}",GLOB_BRACE);
$img = array_rand($img_array);
$dz = $img_array[$img];
header("Location:".$dz);
?>
2.外链调用(推荐)
第一步:在网站根目录下创建一个txt,一个PHP文件:img.txt,index.php。
第二步:将以下内容写入index.php中。有一个地方可供修改,
第三步:将喜欢的图片上传到图床后复制链接到img.txt中,访问绑定的域名即可随机展示。
这一类方法,每一次只需调用txt内的链接,对访问速度较快,较容易缓存,其实就是把外链当数据库了,而且直接编辑txt也方便管理。
<?php
// 判断当前设备是否为移动设备的函数
function is_mobile() {
$user_agent = $_SERVER['HTTP_USER_AGENT']; // 获取用户代理字符串
$mobile_agents = array('Android', 'iPhone', 'Windows Phone', 'BlackBerry', 'SymbianOS'); // 定义移动设备关键词数组
// 遍历移动设备关键词数组,检查用户代理字符串中是否包含这些关键词
foreach ($mobile_agents as $mobile_agent) {
if (stripos($user_agent, $mobile_agent) !== false) {
return true; // 如果找到关键词,返回true表示是移动设备
}
}
return false; // 如果没有找到关键词,返回false表示不是移动设备
}
// 从指定的txt文件中随机获取一条图片链接的函数
function get_random_image($filename) {
$image_urls = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); // 读取txt文件的每一行,存储到一个数组中
if (count($image_urls) > 0) {
$random_index = array_rand($image_urls); // 从数组中随机选择一个索引
return $image_urls[$random_index]; // 返回选中的图片链接
} else {
return false; // 如果数组为空,返回false表示没有图片链接
}
}
// 直接输出图片的函数
function output_image($image_url) {
$headers = get_headers($image_url, 1); // 获取图片链接的HTTP头信息
if (isset($headers['Content-Type'])) {
header('Content-Type: ' . $headers['Content-Type']); // 设置响应的Content-Type头部信息
}
echo file_get_contents($image_url); // 读取并输出图片内容
}
$is_mobile = is_mobile(); // 判断当前设备是否为移动设备
$filename = $is_mobile ? 'mpm.txt' : 'moe.txt'; // 根据设备类型选择相应的txt文件
$image_url = get_random_image($filename); // 从txt文件中随机获取一条图片链接
if ($image_url) {
output_image($image_url); // 输出图片
} else {
echo "No images found in the txt file."; // 如果没有图片链接,输出错误信息
}
?>
欢迎使用运行良久成品:<a href="https://www.mwm.moe/main/随机二次元图床API.html" target="_blank">随机二次元图片API
记得给你的API域名上一个SSL不然在调用的时候,客户端用户会出现各种奇怪的提示?¿?¿?¿
本文是原创文章,完整转载请注明来自 栗子
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果