跳到主要内容

「博客封面」丐版文章随机封面 API

· 阅读需 3 分钟
故事的程序猿👨🏻‍💻
一个后端打酱油程序猿

给文章加上随机的图片作为封面,方式有很多,搭建一个丐版的,能白嫖一下。

既然是丐版,那就表示本地肯定不存储图片了。可以使用第三方的存储,有很多选择比如:又拍云的云存储、SM.MS 的图片存储服务、其他人搭建的图床都可以。

比如我这使用 SM.MS 的服务,可以免费存储5个G的文件,够用!上传自己喜欢的图片,然后得到图片链接。

示例:「博客封面」丐版文章随机封面 API

部署服务

首先准备好 php 的环境,使用宝塔或者 1Panel,把默认的 index.php 的内容替换成下面的 index.php 代码,上传 photos.txt 和它同级即可。

度娘一个php的代码,返回随机图片有的是,如下:index.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");}
?>

或者

<?php
//存有美图链接的文件名img.txt
$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){
//JSON返回
case 'json':
header('Content-type:text/json');
die(json_encode(['pic'=>$pic]));

default:
die(header("Location: $pic"));
}
?>

它同级新建个photos.txt 文件,每张图片占一行即可,如下所示:

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/

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) {
//Blob为js的一个对象,表示一个不可变的, 原始数据的类似文件对象,这是创建文件中不可缺少的!
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();
}

使用的话:

  1. 谷歌浏览器开发者选项,Sources——> New snippet (右键新建);

  2. 将上面的代码粘贴进去,然后执行即可下载;

  3. 在新建的 snippet 鼠标右键执行即可得到一行一个链接的txt文件。

小问题

解决同一站点访问随机图片相同的问题?

在访问连接后面设置参数,参数可以任意,不重复就可以。

例如:https://imgapi.lichenghao.cn?_r=123

文章标题:「博客封面」丐版文章随机封面 API
版权声明:内容遵守
许可协议。转载请注明出处!
侵权提示:部分信息可能来源于网络。如发现有侵权,请随时联系删除!

相关推荐

记一次ssh免密登录问题:Permission denied

记一次ssh免密登录问题:Permission denied

先说结论:/root 目录的权限问题导致的 ssh 认证不通过!

2分钟在Mac跑个Kafka服务

2分钟在Mac跑个Kafka服务

我一直都是在 centos 服务器上使用 kafka,或者在 k8s 上使用 kafka。 今天 2 分钟在 Mac 跑个 Kafka 服务。

Diy万能博客模板js脚本【静态博客】

Diy万能博客模板js脚本【静态博客】

静态博客工具,一般都使用Markdown文件。那么Front-Matter这些重复的内容就可以使用工具来生成,大部分静态博客工具都支持插件来生成博客文件。

Nacos2.3.2开启服务端用户认证的坑

Nacos2.3.2开启服务端用户认证的坑

最近升级Nacos服务端到版本2.3.2。但是在开启服务端用户认证的时候出现了问题。


神评论