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

Hitokoto

Hitokoto·一言是什么?

官方的自我介绍如下:
[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文本文件。

[url href=https://eyun.baidu.com/s/3o7RkIhW]提取码:laod[/url]

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 如下图所示:

一言经典语句

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

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

原创文章,作者:老D,如若转载,请注明出处:https://laod.cn/4194.html

(4)
上一篇 2017-10-30
下一篇 2017-11-01

相关推荐

发表回复

登录后才能评论

评论列表(17条)

  • Clelo
    Clelo 2018-06-10 23:45

    感谢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’])) {
    修改后就正常了!

  • 2Broear
    2Broear 2017-11-02 14:31

    好东西

  • Tooyee
    Tooyee 2017-11-02 12:16

    多少人看不懂?

  • kjyqcl
    kjyqcl 2017-11-02 06:05

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

  • Erduo
    Erduo 2017-11-01 19:42

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

  • cyalias
    小Y 2017-11-01 13:36

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

  • Yume
    Yume 2017-11-01 12:34

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

  • moluyouwo
    moluyouwo 2017-11-01 11:52

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

  • yixiangke
    yixiangke 2017-11-01 10:41

    给顶一个。

  • andyleungkk
    andyleungkk 2017-11-01 10:21

    这个好!

  • tiny
    tiny 2017-11-01 09:51

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

  • shenzhouyh
    shenzhouyh 2017-10-31 23:28

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

  • liufeiyawei
    liufeiyawei 2017-10-31 22:56

    这个是干什么用的?

  • withmejjthing
    withmejjthing 2017-10-31 22:47

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

  • guoliang
    guoliang 2017-10-31 22:13

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