给博客加上 Hitokoto·一言经典语句

  • A+
所属分类:网页|代码

给博客加上 Hitokoto·一言经典语句

Hitokoto·一言是什么?

官方的自我介绍如下:

一言网(Hitokoto.cn)创立于2016年,隶属于萌创Team,目前网站主要提供一句话服务。

动漫也好、小说也好、网络也好,不论在哪里,我们总会看到有那么一两个句子能穿透你的心。我们把这些句子汇聚起来,形成一言网络,以传递更多的感动。如果可以,我们希望我们没有停止服务的那一天。

简单来说,一言指的就是一句话,可以是动漫中的台词,也可以是网络上的各种小段子。
或是感动,或是开心,有或是单纯的回忆。来到这里,留下你所喜欢的那一句句话,与大家分享,这就是一言存在的目的。

效果图:

给博客加上 Hitokoto·一言经典语句

一、直接调用他人的接口

数据获取

  • 请求地址: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

 

使用方法
将下面这段代码放入页面内需要展示一句话的位置即可

  1. <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部署

  1. <?php
  2. //获取句子文件的绝对路径
  3. //如果你介意别人可能会拖走这个文本,可以把文件名自定义一下,或者通过Nginx禁止拉取也行。
  4. $path = dirname(__FILE__);
  5. $file = file($path."/yiyan.txt");
  6. //随机读取一行
  7. $arr  = mt_rand( 0, count$file ) - 1 );
  8. $content  = trim($file[$arr]);
  9. //编码判断,用于输出相应的响应头部编码
  10. if (isset($_GET['charset']) && !emptyempty($_GET['charset'])) {
  11.     $charset = $_GET['charset'];
  12.     if (strcasecmp($charset,"gbk") == 0 ) {
  13.         $content = mb_convert_encoding($content,'gbk', 'utf-8');
  14.     }
  15. else {
  16.     $charset = 'utf-8';
  17. }
  18. header("Content-Type: text/html; charset=$charset");
  19. //格式化判断,输出js或纯文本
  20. if ($_GET['format'] === 'js') {
  21.     echo "function hitokoto(){document.write('" . $content ."');}";
  22. else {
  23.     echo $content;
  24. }

以上代码保存为index.php,然后上传到网站根目录下的yiyan文件夹(这个自己随机定义)最后,下载yiyan.txt文本文件。

yiyan.txt上传到和index.php同级目录,比如yiyan文件夹内。
现在,浏览器访问 http://你的域名/yiyan/ 就可以看到输出内容了。

 

三、博客部署

第一步我们已经完成了这个接口的自建部署,现在可以把这个功能搬到博客上了。

部署方法和其他博客基本一致,非常简单,将下面两行代码添加到博客你想显示一言的位置即可:

  1. <script type="text/javascript" src="https://你的域名/yiyan/?format=js&charset=utf-8"></script>
  2. <div id="yiyan"><script>hitokoto()</script></div>

这样输出的样式可能会比较丑,如果你懂CSS的话可以自己再美化美化。

当然,Begin主题或者不会css的朋友可以先试下我这边写好的css代码(可以加到style.css):

  1. #yiyan{
  2.     border-left5px solid #0073d8;
  3.     border-right5px solid #0073d8;
  4.     background-color#3288d31a;
  5.     padding10px;text-aligncenter;
  6.     color#0073d8;
  7.     margin5px 0 5px 0;
  8. }

部署完成之后,前台刷新应该就可以看到效果了,每次刷新都会随机展示一言经典句子。如果你有新的句子,也只要编辑hitokoto.txt文件加入即可。

四、Begin主题添加js文件

可能用Begin主题的童鞋不懂添加到那里,正好我也用这个主题,那么直接贴出来,或许可以减少你不少时间。

老D直接插到 begin/template/social.php 如下图所示:

给博客加上 Hitokoto·一言经典语句

弄完之后记得刷新缓存,不然你短时间内是看不到效果的哦,启用CDN的童鞋请也要记得给排除下这个路径缓存。

至于别的主题你就慢慢找了,这个功能适用于绝大多数博客、网站、论坛。

老D

发表评论

您必须才能发表评论!

目前评论:16   其中:访客  16   博主  0

    • avatar 2Broear 5

      好东西

      • avatar Tooyee 1

        多少人看不懂?

        • avatar kjyqcl 0

          收藏了琢磨一下,
          看哪天能不能用在自己的博客上

          • avatar Erduo 1

            哈哈 可以拿去做博客页尾小东东了

            • avatar cyalias 1

              我是在微信上看到你的推文的,嘿嘿,今晚回去我也给我小博客弄下

              • avatar Yume 1

                虽然有点看不懂,但是感觉很厉害的样子 :mrgreen:

                • avatar moluyouwo 2

                  魔高一尺道高一丈,hosts一定会复活

                  • avatar yixiangke 1

                    给顶一个。

                    • avatar andyleungkk 2

                      这个好!

                      • avatar tiny 0

                        为啥有些页面死活登入不上

                        • avatar shenzhouyh 1

                          终于注册成功,同时也感谢老D的技术分享

                          • avatar liufeiyawei 0

                            这个是干什么用的?

                            • avatar withmejjthing 0

                              老大,我只想问一下,放弃google了吗? ::>_<::

                              • avatar guoliang 1

                                hosts 最新的再哪里下载更新呀?