Hitokoto·一言是一个挺有意思的项目,之前本博客页脚底部使用的是一款插件,一言属于一款纯净的API,官方的自我介绍如下:
一言网(Hitokoto.cn)创立于2016年,隶属于萌创Team,目前网站主要提供一句话服务。
动漫也好、小说也好、网络也好,不论在哪里,我们总会看到有那么一两个句子能穿透你的心。我们把这些句子汇聚起来,形成一言网络,以传递更多的感动。如果可以,我们希望我们没有停止服务的那一天。
简单来说,一言指的就是一句话,可以是动漫中的台词,也可以是网络上的各种小段子。
或是感动,或是开心,有或是单纯的回忆。来到这里,留下你所喜欢的那一句句话,与大家分享,这就是一言存在的目的。
本API去除原API的各种链接、各种参数,简洁得只剩下字了!还能免去一个插件使用
一、使用方法:
将PHP代码保存为 index.php,然后上传到网站根目录下的 hitokoto 文件夹(这个自己随机定义)文末提供下载 hitokoto.txt 文本文件
把 hitokoto.txt 上传到和 index.php 同级目录,比如 hitokoto 文件夹内。
现在,浏览器访问 http://你的域名/hitokoto/ 就可以看到输出内容了
PHP代码
<?php
//获取句子文件的绝对路径
//如果你介意别人可能会拖走这个文本,可以把文件名自定义一下,或者通过Nginx禁止拉取也行。
$path = dirname(__FILE__);
$file = file($path."/hitokoto.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';
}
header("Content-Type: text/html; charset=$charset");
//格式化判断,输出js或纯文本
if ($_GET['syz'] === 'js') {
echo "function hitokoto(){document.write('" . $content ."');}";
} else {
echo $content;
}
实例数据获取
- 请求地址:https://api.qq52o.me/hitokoto
- 请求方式:GET
- 请求编码:接口:charset 参数:UTF-8/GBK(默认UTF-8)
- 请求参数:接口:syz 参数:js(为空则返回纯文本)
二、博客集成:
第一步我们已经完成了这个接口的自建部署,现在可以把这个功能搬到博客上了。
部署方法和其他博客基本一致,非常简单,将下面两行代码添加到博客你想显示一言的位置即可:
<script type="text/javascript" src="https://api.qq52o.me/hitokoto/?syz=js&charset=utf-8"></script>
<script>hitokoto()</script>
不过,这样输出的字符样式可能是默认的,加入到你博客页脚的标签中,如果没有定义样式,可以自定义一下样式。
部署完成之后,前台刷新应该就可以看到效果了,每次刷新都会随机展示一言经典句子。如果你有新的句子,也只要编辑 hitokoto.txt 文件加入即可。
好了,文章就介绍这么多,喜欢的朋友可以试下了。
测试一下啊
Hello,我也开发了一个 关于古诗词的 一言 API,可以根据场景智能推荐。不知道博主有没兴趣看一看,我们还提供炒鸡方便的安装 SDK。一起学习哈哈。
https://www.jinrishici.com
@乱码 看到了,有朋友在用,能坚持免费用就不错 😆
几次这个东东感觉像龙笑天下那样直接显示在评论框中会比较给力
我竟然没找到演示!
@胡德杰 实例数据获取 https://api.qq52o.me/hitokoto
😎 这个改的快 😛
@西枫里博客 哈哈哈 见笑见笑
有点意思!