上网的时候,看到有别人搭建的随机图片API,觉得挺有意思,就在网上翻找了一些资料,在这里搭建一个,记录一下过程。
搭建PHP环境
这个网上教程挺多,不多废话,我简单贴一下自己的nginx
配置文件img.conf
:
|
|
其实是在Typecho
博客的配置上改的,用来也没什么大问题,就这样了。😉
新建PHP文件
在网站根目录下新建index.php
文件,内容如下:
|
|
代码取自Tianli's blog,我略改了一下,可以在count.txt
中查看调用次数。不过我看很多教程都用的是这个代码,会不会已经是常见写法了?😂
之后在根目录下创建img.txt
文件,记录文件名;创建img
文件夹或软连接,存储图片。
因为我的图片没几张,这样也就够了,不用麻烦数据库了。
记录图片名
按说这一步并不复杂,
|
|
这一条命令就可以搞定了,但个人有点强迫症,想要给图片编号,又想名称显示一部分随机数,所以就写了一个小脚本,但以下完全是可以忽略的。
创建一个shell脚本format-name.sh
,脚本内容如下:
|
|
用chmod +x format-name.sh
赋权。
脚本执行后,img.txt
内容形似:
|
|
还可以crontab -e
安装定时任务,一天执行一次。
|
|
一切都搞定后,其实访问网址就可以自动跳转随机图片了。
测试一下Demo,
直接套了Cloudfalre
,国内速度未必理想,可以通过选择不同的存储来优化,这里就不多说了。
另外,还可以建立一个简单的数据统计页面,把有关调用的信息展示出来。
如在网站根目录下新建info.php
,内容如下:
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>API Info</title>
<link rel="shortcut icon" href="https://pic.imgdb.cn/item/627133750947543129f53204.png">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=ZCOOL+XiaoWei&display=swap" rel="stylesheet">
<style>
* {
font-family: 'ZCOOL XiaoWei', serif
}
#bg {
-moz-transform: scale(1);
-webkit-transform: scale(1);
-ms-transform: scale(1);
transform: scale(1);
backface-visibility: hidden;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100vh;
z-index: -1
}
#bg:after,
#bg:before {
content: '';
display: block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%
}
#bg:before {
-moz-transition: background-color 2.5s ease-in-out .75s;
-webkit-transition: background-color 2.5s ease-in-out .75s;
-ms-transition: background-color 2.5s ease-in-out;
transition: background-color 2.5s ease-in-out .75s;
transition-delay: .75s;
background-image: linear-gradient(to top, rgba(255, 255, 255, .7), rgba(255, 255, 255, .7)), url(https://jitsu.oss-cn-beijing.aliyuncs.com/home/img/overlay.png);
background-size: auto, 256px 256px;
background-position: center, center;
background-repeat: no-repeat, repeat;
z-index: 2
}
#bg:after {
-moz-transform: scale(1.125);
-webkit-transform: scale(1.125);
-ms-transform: scale(1.125);
transform: scale(1.125);
-moz-transition: -moz-transform 325ms ease-in-out, -moz-filter 325ms ease-in-out;
-webkit-transition: -webkit-transform 325ms ease-in-out, -webkit-filter 325ms ease-in-out;
-ms-transition: -ms-transform 325ms ease-in-out, -ms-filter 325ms ease-in-out;
transition: transform 325ms ease-in-out, filter 325ms ease-in-out;
background-image: url(https://iw233.cn/api.php?sort=pc);
background-position: center;
background-size: cover;
background-repeat: no-repeat;
z-index: 1
}
.box1 {
position: absolute;
top: 30%;
left: 50%;
transform: translate(-50%, -50%);
font-size: xx-large;
}
.box2 {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: xx-large;
}
.box3 {
color: coral;
}
</style>
</head>
<body>
<div id="bg"></div>
<div class="box1">
<h1>API调用情况</h1>
</div>
<div class="box2">
<h2>图片数量   <a class="box3"><?php echo file_get_contents("num.txt"); ?></a>张</h2>
<h2>调用次数   <a class="box3"><?php echo file_get_contents("count.txt"); ?></a>次</h2>
</div>
</body>
</html>
对前端不熟,代码是根据这里改的,访问https://img.example.com/info.php
即可显示API相关信息。
抛砖引玉,按需改动。
搞完后,感到一种莫名的满足感。🤣不过没必要的话不必随便改动名字,留着原来图片名字,说不定还好找一点。
就这样了。
OVER