极简版自建一言语句php

1,683次阅读
2条评论

共计 1310 个字符,预计需要花费 4 分钟才能阅读完成。

查看效果:https://www.krjojo.com/resources/sentences/

这是hitokoto原版效果:https://v1.hitokoto.cn/

简直就是一模一样。

优点:

  • 文件都在本地服务器
  • 不依赖别人网站,高稳定性
  • 不依赖数据库
  • 可以自己修改语句包

缺点:

  • 性能有那么一丢丢下降

一言数据来自:https://github.com/hitokoto-osc/sentences-bundle

一言开源社区官方提供的语句库,系 hitokoto.cn 数据打包集合。

第一步

下载 语句库 全部 json 文件。

├── a.json
├── b.json
├── c.json
├── d.json
├── e.json
├── f.json
├── g.json
├── h.json
├── i.json
├── j.json
├── k.json
└── l.json

第二步

新建index.php文件:

<?php
// https://v1.hitokoto.cn/

$type_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l'];
if (isset($_GET['c']) && !empty($_GET['c']) && in_array($_GET['c'], $type_list)) {
    $file = $_GET['c'] . ".json";
} else {
    $file = "all.json";
}

// 读取 JSON 文件内容
$jsonContent = file_get_contents('./' . $file);

// 解析 JSON 内容为数组
$array = json_decode($jsonContent, true);

// 从数组中随机选择一段文本
$randomText = $array[array_rand($array)];

// 设置响应头
header('Content-Type: application/json');

// 输出随机选中的文本
echo json_encode($randomText);

?>

第三步

把所有 json 文件合并成一个 all.json 文件,当然我也整理了。

可以直接下载。

https://www.krjojo.com/resources/sentences/all.json

第四步

最后新建一个文件夹把所有文件包起来,文件名字随意,放在站点根目录。

目录下应该为:

新建文件夹的名字
├── a.json
├── all.json
├── b.json
├── c.json
├── d.json
├── e.json
├── f.json
├── g.json
├── h.json
├── i.json
├── index.php
├── j.json
├── k.json
└── l.json

最后访问你的站点: www.example.com/新建文件夹的名字

如果不能正常访问则试试: www.example.com/新建文件夹的名字/index.php

说明

请求参数支持句子类型,与一言官方一致,不传则默认全部类型,如:

example.com/?c=a

句子类型(参数)

参数 说明
a 动画
b 漫画
c 游戏
d 文学
e 原创
f 来自网络
g 其他
h 影视
i 诗词
j 网易云
k 哲学
l 抖机灵
其他 作为 动画 类型处理

完毕

正文完
 1
评论(2条评论)
Ja
2024-01-31 12:18:41 回复

index.php需要放在那个目录呢