给文章加上随机的图片作为封面,方式有很多,搭建一个丐版的,能白嫖一下。
既然是丐版,那就表示本地肯定不存储图片了。可以使用第三方的存储,有很多选择比如:又拍云的云存储、SM.MS
的图片存储服务、其他人搭建的图床都可以。
比如我这使用 SM.MS
的服务,可以免费存储5个G的文件,够用!上传自己喜欢的图片,然后得到图片链接。
示例:「博客封面」丐版文章随机封面 API
[{"url":"https://hexo.lichenghao.cn/imgapi?r=802b63f9-1","alt":""},{"url":"https://hexo.lichenghao.cn/imgapi?r=802b63f9-2","alt":""}]
部署服务
首先准备好 php 的环境,使用宝塔或者 1Panel,把默认的 index.php 的内容替换成下面的 index.php 代码,上传 photos.txt 和它同级即可。
度娘一个php的代码,返回随机图片有的是,如下:index.php
1 2 3 4 5 6
| <?php $arr=file('photos.txt'); $n=count($arr)-1; for ($i=1;$i<=1;$i++){ $x=rand(0,$n);header("Location:".$arr[$x],"\n");} ?>
|
或者
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <?php
$filename = "photos.txt"; if(!file_exists($filename)){ die('文件不存在'); }
$pics = []; $fs = fopen($filename, "r"); while(!feof($fs)){ $line=trim(fgets($fs)); if($line!=''){ array_push($pics, $line); } }
$pic = $pics[array_rand($pics)];
$type=$_GET['type']; switch($type){
case 'json': header('Content-type:text/json'); die(json_encode(['pic'=>$pic]));
default: die(header("Location: $pic")); } ?>
|
它同级新建个photos.txt
文件,每张图片占一行即可,如下所示:
1 2
| https://s2.loli.net/2023/04/20/RXmvd7lpYHnuD3x.webp https://s2.loli.net/2023/04/20/LkyNtFUhI7JlRci.webp
|
然后,添加域名、ssl证书。最后,访问即可。https://imgapi.lichenghao.cn
小脚本
SM.MS
上批量上传了图片后,批量获取图片链接成了个问题,也不能挨个去 copy。

度娘下 js 调整成批量获取图片链接。适用于网站:https://smms.app/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| var links = ""; $('#table-picture tr').each(function (index) { if (index === 0) { } else { var td = this.children[7]; var tt = td.children[0].children[0]; var value = $(tt).val(); links = links + value + "\n" } })
var name = 'pictures.txt'; savefiles(links, name);
function savefiles(data, name) { const urlObject = window.URL || window.webkitURL || window; const export_blob = new Blob([data]); const save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a"); save_link.href = urlObject.createObjectURL(export_blob); save_link.download = name; save_link.click(); }
|
使用的话:
-
谷歌浏览器开发者选项,Sources——> New snippet (右键新建);
-
将上面的代码粘贴进去,然后执行即可下载;
-
在新建的 snippet 鼠标右键执行即可得到一行一个链接的txt文件。
小问题
解决同一站点访问随机图片相同的问题?
在访问连接后面设置参数,参数可以任意,不重复就可以。
例如:https://imgapi.lichenghao.cn?_r=123