官方的自我介绍如下:
[v_warn]
一言网(Hitokoto.cn)创立于2016年,隶属于萌创Team,目前网站主要提供一句话服务。
动漫也好、小说也好、网络也好,不论在哪里,我们总会看到有那么一两个句子能穿透你的心。我们把这些句子汇聚起来,形成一言网络,以传递更多的感动。如果可以,我们希望我们没有停止服务的那一天。
简单来说,一言指的就是一句话,可以是动漫中的台词,也可以是网络上的各种小段子。
或是感动,或是开心,有或是单纯的回忆。来到这里,留下你所喜欢的那一句句话,与大家分享,这就是一言存在的目的。
[/v_warn]
效果图:
一、直接调用他人的接口
数据获取
- 请求地址:https://api.lwl12.com/hitokoto/main/get
- 请求方式:GET
- 请求参数:
- charset:字符集,支持gbk/utf-8,默认为utf-8
- encode数据格式,对应如下
- js返回函数名为lwlhitokoto的JavaScript脚本,用于同步调用
- arl:刷新时间,单位ms
实例
请求https://api.lwl12.com/hitokoto/main/get
返回 呐,知道么,樱花飘落的速度,是每秒五厘米哦~
调用举例 - JavaScript + HTML
脚本地址https://api.lwl12.com/hitokoto/main/get?encode=js
使用方法
将下面这段代码放入页面内需要展示一句话的位置即可
<script type="text/javascript" src="https://api.lwl12.com/hitokoto/main/get?encode=js&charset=utf-8"></script><div id="lwlhitokoto"><script>lwlhitokoto()</script></div>
二、自己DIY部署
<?php //获取句子文件的绝对路径 //如果你介意别人可能会拖走这个文本,可以把文件名自定义一下,或者通过Nginx禁止拉取也行。 $path = dirname(__FILE__); $file = file($path."/yiyan.txt"); //随机读取一行 $arr = mt_rand( 0, count( $file ) - 1 ); $content = trim($file[$arr]); //编码判断,用于输出相应的响应头部编码 if (isset($_GET['charset']) && !emptyempty($_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['format'] === 'js') { echo "function hitokoto(){document.write('" . $content ."');}"; } else { echo $content; }
以上代码保存为index.php,然后上传到网站根目录下的yiyan文件夹(这个自己随机定义)最后,下载yiyan.txt文本文件。
把yiyan.txt上传到和index.php同级目录,比如yiyan文件夹内。
现在,浏览器访问 http://你的域名/yiyan/ 就可以看到输出内容了。
三、博客部署
第一步我们已经完成了这个接口的自建部署,现在可以把这个功能搬到博客上了。
部署方法和其他博客基本一致,非常简单,将下面两行代码添加到博客你想显示一言的位置即可:
- <script type="text/javascript" src="https://你的域名/yiyan/?format=js&charset=utf-8"></script>
- <div id="yiyan"><script>hitokoto()</script></div>
这样输出的样式可能会比较丑,如果你懂CSS的话可以自己再美化美化。
当然,Begin主题或者不会css的朋友可以先试下我这边写好的css代码(可以加到style.css):
- #yiyan{
- border-left: 5px solid #0073d8;
- border-right: 5px solid #0073d8;
- background-color: #3288d31a;
- padding: 10px;text-align: center;
- color: #0073d8;
- margin: 5px 0 5px 0;
- }
部署完成之后,前台刷新应该就可以看到效果了,每次刷新都会随机展示一言经典句子。如果你有新的句子,也只要编辑hitokoto.txt文件加入即可。
四、Begin主题添加js文件
可能用Begin主题的童鞋不懂添加到那里,正好我也用这个主题,那么直接贴出来,或许可以减少你不少时间。
老D直接插到 begin/template/social.php 如下图所示:
弄完之后记得刷新缓存,不然你短时间内是看不到效果的哦,启用CDN的童鞋请也要记得给排除下这个路径缓存。
至于别的主题你就慢慢找了,这个功能适用于绝大多数博客、网站、论坛。
2018-06-10 23:45 15楼
感谢laod分享!在自己部署的时候发现一个问题。。
在JS上添加src=”https://你的域名/yiyan/?format=js&charset=utf-8″ 的时候发现有问题
报了这个错误:Fatal error: Call to undefined function emptyd() in /www/wwwroot/wp/yiyan/index.php on line 10
找了一下发现是本页面index.php里的第十二行代码的empty()函数写成了emptyempty():
if (isset($_GET[‘charset’]) && !emptyempty($_GET[‘charset’])) {
修改后就正常了!
2017-11-02 14:31 14楼
好东西
2017-11-02 12:16 13楼
多少人看不懂?
2017-11-02 06:05 12楼
收藏了琢磨一下,
看哪天能不能用在自己的博客上
2017-11-01 19:42 11楼
哈哈 可以拿去做博客页尾小东东了
2017-11-01 13:36 10楼
我是在微信上看到你的推文的,嘿嘿,今晚回去我也给我小博客弄下
2017-11-01 12:34 9楼
虽然有点看不懂,但是感觉很厉害的样子
2017-11-01 11:52 8楼
魔高一尺道高一丈,hosts一定会复活
2017-11-01 10:41 7楼
给顶一个。
2017-11-01 10:21 6楼
这个好!
2017-11-01 09:51 5楼
为啥有些页面死活登入不上
2017-10-31 23:28 4楼
终于注册成功,同时也感谢老D的技术分享
2017-10-31 22:56 3楼
这个是干什么用的?
2017-10-31 22:47 2楼
老大,我只想问一下,放弃google了吗? ::>_<::
2017-11-01 01:22 1层
回复 withmejjthing 没有
2017-10-31 22:13 1楼
hosts 最新的再哪里下载更新呀?
2017-11-01 10:28 1层
回复 guoliang 等待吧,都不容易