想法
搭建好BLOG和TECH,我一直觉得里面的随机图片很好看。依靠baidu我大概了解到这个是依靠API实现的。于是乎,我自己也想整一个(毕竟图片在自己手上用的放心捏)。再也不怕别人的API接口失效力!
建设
方法如下:
本地搭建
初步建设
将图片放于本地服务器中(与网站同目录下)
当然你想当外链使用也可以
首先在网站根目录下创建一个文件夹 photos 和一个名为 api.php 的文件。
然后在photos的文件夹内放图片,在api.php内编写如下代码:
<?php
$img_array = glob("photos/*.{gif,jpg,png}",GLOB_BRACE);
$img = array_rand($img_array);
$dz = $img_array[$img];
header("Location:".$dz);
?>
保存即可,通过api即可随机调用img文件夹中的图片。
使用方法
访问地址:http://你的域名/api.php就可以啦!可以选择套CDN加速!
不足
不过这种方法不足的就是会对服务器造成较大的压力,毕竟是本地文件,加载还是要消耗一定资源的。
所以:
外链图片
初步建设
将图片放于其他服务器中,或者是图床中
当然你想当本地使用也可以
也是在网站的根目录下面先创建 photos.txt 和 api.php 文件(这个网站可以不用index首页,反正就是放个图片对吧?)
当然,如果你想创建默认页面,放入index网页即可!
然后在photos.txt文档内放图片外链地址(一行一个),在api.php加入下列代码:
<?php
$arr=file('photos.txt');
$n=count($arr)-1;
for ($i=1;$i<=1;$i++){
$x=rand(0,$n);header("Location:".$arr[$x],"\n");}
?>
使用方法
最后访问地址:http://你的域名/api.php即可!
这种方法的好处是可与将图片存放到外面以降低服务器压力(还可以白嫖一些图床)。不过对图片存放源的带宽有一定的要求(你也不想图片加载半天加载不出来吧~)
Python
一些补充的东西(本地提取图片命名)
(其实就是我自己比较懒)
我的图片放在网站根目录下的photos文件夹中,所以采用如下方式。如果你的图片放在对象存储中,则直接在TXT文件中写入每张图片的位置(一行一个)即可!
由于我自己的图片比较多,所以当我使用搭建外链的时候比较头疼——那么多图片的文件名得全部录入TXT中!
于是我就稍微写了两行python简化了一下工作量,代码如下(自己用的时候修改一下地址就行啦):
import os
path = "E:\WEB学习\python\photos" #填写photos文件夹的路径
filename = 'name.txt' #你想保存的TXT文件的名字,如果没有的话会自己创建一个(默认和python执行文件同目录)
datanames = os.listdir(path) #读取photos中的文件
for i in datanames:
with open(filename, 'a') as f: #'w'表示写数据,写之前会清空文件中的原有数据!'a'的话是往后接着写数据!
f.write('photos/'+i) #是否带有文件夹名看自己的需求
f.write('\n')
读完以后就会产生像下面的一个TXT文件:
然后就好了……