欢迎来到好人卡资源网,专注网络技术资源收集,我们不仅是网络资源的搬运工,也生产原创资源。寻找资源请留言或关注公众号:烈日下的男人

开发并维护一个属于自己的一言(Hitokoto)api接口

网站源码 sky995 4年前 (2020-09-01) 1001次浏览 0个评论

本文及资源最后更新时间 2020-09-01 by sky995

基本思路展开目录

什么心路历程也懒得写了,虽然说一言 api 烂大街,但是用别人的接口始终不放心,所以说还是维护一个自己的接口比较好。
我的思路就是:采集别人,壮大自己!
是的,没有看错,自己采集得采集到猴年马月,直接采集别人来的痛快。

采集部分展开目录

首先,我们需要采集别人的,并保存到本地,所以说我这里写了一个通用采集的模板,代码如下:

  • <?php
  • $contents = file_get_contents($api[mt_rand(0,count($api)-1)]);
  • if(!empty($contents) && !preg_match(‘/’.$contents.‘/’,file_get_contents(‘./api.txt’))){
  • file_put_contents(‘./api.txt’,$contents.“\n”,FILE_APPEND);
  • echo ‘Success -> ‘.$contents;
  • }else{
  • echo ‘Failed -> 获取数据失败’;
  • }
  • ?>

如果想要增加 api 的话,可以照着这个模板写,也就是:

  • $api[] = ‘要采集的api’;

这样的话,我们就可以采集别人的,同时我加了重复的判断,所以说不用担心采集到的会有重复,同时多 api 随机采集也可以最大程度避免采集同一 api 导致防火墙拦截

接口部分展开目录

接口部分没什么特殊的,就是很 “模板” 的一个一言接口模板

  • <?php
  • //获取句子文件的绝对路径
  • $path = dirname(__FILE__);
  • $file = file($path.“/api.txt”);
  • //随机读取一行
  • $arr = mt_rand( 0, count( $file ) – 1 );
  • $content = trim($file[$arr]);
  • //编码判断,用于输出相应的响应头部编码
  • if (isset($_GET[‘charset’]) && !empty($_GET[‘charset’])) {
  • $charset = $_GET[‘charset’];
  • if (strcasecmp($charset,“gbk”) == 0 ) {
  • $content = mb_convert_encoding($content,‘gbk’, ‘utf-8’);
  • }
  • } else {
  • $charset = ‘utf-8’;
  • }
  • //格式化判断,输出js或纯文本
  • if ($_GET[‘encode’] === ‘js’) {
  • echo “function api(){document.write(‘” . $content .“‘);}”;
  • }else if($_GET[‘encode’] === ‘json’){
  • $content = array(‘text’=>$content);
  • echo json_encode($content, JSON_UNESCAPED_UNICODE);
  • }else {
  • echo $content;
  • }
  • ?>

大功告成展开目录

这样的话我们就维护了一个属于自己的一言 api,如果发现哪个接口死了,还可以安装那个格式继续添加,采集下来的 api 都保存到本地,我建议采集部分和接口部分保存到两个文件中,然后给那个采集部分挂个计划任务,这样就可以 24 小时不停的采集了。
哈哈哈哈,采集别人,壮大自己,估计采集个一年半载你就是全网最靓的仔!


好人卡资源网 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:开发并维护一个属于自己的一言(Hitokoto)api接口
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址