跳到主要内容

1 篇博文 含有标签「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