一个PHP的图片API

最后更新于:

没有介绍

也没有废话

复制粘贴到一个PHP后缀的文件

然后丢服务器根目录就行了啦~

 1<?php
 2/ ---------- 图片扩展名配置项 ---------- /
 3$ext = 'jpg'; // 请根据自身图片格式,修改 jpg
 4// 记得根据自己的图片后缀名修改,目前白木在这里只适配了三种格式🔽
 5// ▶️ jpg  ▶️  wbep  ▶️  png
 6/ ---------- 图片路径配置项 ---------- /
 7$baseURL = 'https://mu.baimu.live/LycorisRecoil/'; // 请记得修改为自己的域名+路径
 8                                  // 🔼 这是一个存放图片的文件夹路径
 9$images  = [];
10for ($i = 1; $i <= 26; $i++) {
11    // 请记得修改你的图片命名格式
12    // 推荐命名格式:名称(26英文字母) ➕ -(连接符号)➕ 序号(如01~99)
13    $images[] = $baseURL . 'Lycoris_Recoil-' . $i . '.' . $ext; // 这里的【 Lycoris_Recoil- 】是图片命名格式
14                      // 我的图片命名格式🔽
15                      // Lycoris_Recoil-01
16                      // ... 省略超多图片...
17                      // Lycoris_Recoil-39
18}
19$coverImage = $images[array_rand($images)];
20$isReferrer = isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] !== '';
21if ($isReferrer) {
22    header('Content-Type: image/' . ($ext === 'jpg' ? 'jpeg' : $ext));
23    header('Cache-Control: no-cache');
24    readfile($coverImage);
25    exit;
26}
27$startIndex = array_rand($images);
28$imagesJson = json_encode($images, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
29echo <<<HTML
30<!DOCTYPE html>
31<html lang="zh">
32<head>
33<meta charset="UTF-8">
34<!--这里是直接访问/分享链接时的站点名称-->
35<!--留空,则直接显示域名-->
36<title>Lycoris Recoil 随机轮播</title>
37<meta property="og:image" content="$coverImage" />
38<style>
39html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:#000}
40slideshow img{position:fixed;top:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.1);transition:opacity 1.5s ease,transform 3s ease;z-index:0}
41slideshow img.active{opacity:1;transform:scale(1);z-index:1}
42</style>
43</head>
44<body>
45<div id="slideshow"></div>
46<script>
47const container=document.getElementById('slideshow'),images=$imagesJson;
48let currentIndex=$startIndex;
49const img1=new Image(),img2=new Image();
50container.appendChild(img1);container.appendChild(img2);
51let showingFirst=true;
52img1.src=images[currentIndex];img1.classList.add('active');
53function showNextImage(){
54  let nextIndex;
55  do{nextIndex=Math.floor(Math.random()*images.length)}while(nextIndex===currentIndex);
56  const nextImg=showingFirst?img2:img1,currentImg=showingFirst?img1:img2;
57  nextImg.src=images[nextIndex];
58  requestAnimationFrame(()=>{nextImg.classList.add('active');currentImg.classList.remove('active')});
59  currentIndex=nextIndex;showingFirst=!showingFirst;
60}
61setInterval(showNextImage,3000);
62</script>
63</body>
64</html>
65HTML;
66?>
推荐使用微信支付
微信支付二维码
推荐使用支付宝
支付宝二维码
最新文章

本页导航

本页暂无大纲内容

文章需要包含标题才能生成目录