注:本文来自网络,仅供技术分享,可替换原作者提供的图片,用来做任何图片站
演示站1:https://rj.hostloc.ltd
演示站2:http://v2ex.ltd
秀人随机图搭建教程
1.首先是图包
https://xiuren.pages.dev/xiuren-url.zip,下载这个zip,然后解压,然后服务器上:
wget -x -i xiuren-url.txt
总大小75g的样子,请确认盘大小足够
2.然后是html
https://xiuren.pages.dev/xiuren.zip,这是html下载链接
3.最后是php的api
html需要一个random.php的api,这个api返回的是json格式
我前后试了三种方案,这里全部放出来分享给大家,当然也请有能力大佬看看有没有更好的办法
首先这个php需要返回这样的数据:
{"title":"[XiuRen秀人网]第213期MAGIC写真","imgs":["https://rj.hostloc.ltd/uploadfile/202001/6/7C05727159.jpg","https://rj.hostloc.ltd/uploadfile/202001/6/0705727341.jpg","https://rj.hostloc.ltd/uploadfile/202001/6/A705727374.jpg","https://rj.hostloc.ltd/uploadfile/202001/6/9C05727945.jpg","https://rj.hostloc.ltd/uploadfile/202001/6/2705727174.jpg","https://rj.hostloc.ltd/uploadfile/202001/6/5F05727780.jpg","https://rj.hostloc.ltd/uploadfile/202001/6/CB05727279.jpg","https://rj.hostloc.ltd/uploadfile/202001/6/B505728892.jpg"]}
第一个方案是,把所有的json按行放在txt里面,然后php随机读取一行,然后返回,代码如下:
<?php
header('Content-Type:application/json; charset=utf-8');
$f='1.txt'; //文件名
$a=file($f); //把文件的所有内容获取到数组里面
$n=count($a); //获得总行数
$rnd=rand(0,$n); //产生随机行号
$rnd_line=$a[$rnd]; //获得随机行
echo "$rnd_line"; //显示结果
?>
1.txt里面放的就是所有的json,我的文件是这个,https://xiuren.pages.dev/xiurenjson.zip,下载后批量修改下域名就能用
缺点:内存好像有问题,在多人访问时,内存非常容易爆,然后php就没办法返回信息,不知道是代码的问题还是什么,希望有大佬指定
第二个方案是把json放进mysql,然后mysql随机读取
我用的方法是HeidiSQL文件导入,读取的代码是这个:
<?php
header('Content-Type:application/json; charset=utf-8');
$mysqli = new mysqli("localhost", "name", "password", "db");
$sql = "select * from u2 order by rand() limit 1";
$result = $mysqli->query($sql);
$res = mysqli_fetch_array($result);
echo $res[0];
/* close connection */
$mysqli->close();
?>
这个方案倒是没太大缺点,就是导入可能有点麻烦,php按行导入我不会,会的大佬可以指点一下
第三个方案也是我在用的方案,就是redis,速度非常快
写入的代码:
<?php
$file = fopen("1.txt","r");
while(! feof($file))
{
$redis = new Redis();
$redis->connect('xxxxxx.com', 6666);
$redis->auth('password');
$redis->set(fgets($file), "name");
}
fclose($file);
?>
读取的代码:
<?php
header('Content-Type:application/json; charset=utf-8');
$redis = new Redis();
$redis->connect('xxxxxx.com', 6666);
$redis->auth('password');
$arList = $redis->RANDOMKEY("*");
print_r($arList);
?>
要搭建的话,第一步下好图片后,把对应的文件夹放到web目录下,然后批量修改我那个json里面的域名就行
vps加油站
























