☺  ____
 
收藏文章 楼主

自建“一言”功能接口

版块:API接口   类型:普通   作者:擎天   查看:1068   回复:1   获赞:1   时间:2019-07-27 01:46:24

一直想给网站添加个“经典语录”的模块,来记录些自己看到的不错的句子或者是自己的一些所思所想,但苦于自己技术有限,始终没有好的实现方法,最近在浏览张戈博客的时候发现博主分享了网站添加一言功能的代码,觉的很是不错便移植到了自己的网站上。

说一下个人之所以选择这代码的原因吧。

1.纯代码,无需写入数据库。这个功能的实现是通过随机调用一个TXT文本中的句子来实现的,所以就避免了每一次请求调去数据库中的信息的过程,减轻了数据库的负担。WordPress有一款名叫的插件,但是需要将语录文字写进数据库,当然这有助于对语录文字的分类,但是个人感觉对于个人博客,如果不是专门做经典语录的话没有必要如此消耗数据库。

2.模块化,方便随时添加或移出。这一点对于喜欢折腾的站长及新手站长还是挺好的,模块化的网站管理方式可以使得我们对于网站各个功能的清晰把握,即使某一模块出现故障也不会对网站整体有什么影响,但是模块化也会造成系统臃余的问题,具体如何大家自己把握。

好了,废话不多说了,来看下具体实现的步骤吧。

部署接口

新建一个index.php文件,在文件中填写如下代码:

<?php
// 获取句子文件的绝对路径
// 如果你介意别人可能会拖走这个文本,可以把文件名自定义一下,或者通过Nginx禁止拉取也行。
$path = dirname(__FILE__);
$file = file($path."/qtone.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['format'] === 'js') {
    echo "function hitokoto(){document.write('" . $content ."');}";
} else {
    echo $content;
}

新建一个名为qtone.txt的文本文档,将qtone.txt文本文档与上面的index.php文件同时放入一个名为qtone的文件夹中,当然这里文本文档及文件夹的名称可以更改为其他任意字符,但是要将代码中对应调用部分也做更改。现在通过浏览器访问路径“http://你的域名/qtone/”就可以查看输出内容了,借此我们也可以确认自己的接口部署是否正确。

网站集成

在网站中你需要显示语录文字的地方添加上如下代码既可以实现对qtone.txt中文字语录的调用。

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

建议大家使用Notepad++编辑工具对qtone.txt文件进行编辑,一行一句语录。Windows默认的文本工具打开TXT文档后可能会无法智能分句。

如果调用后出现乱码,请将

<script type="text/javascript" src="https://你的域名/qtone/?format=js&charset=utf-8"></script>

改为

<script type="text/javascript" src="/qtone/?format=js"></script>

样式美化

通过上面两步我们就可以在网站前端查看到自己添加的语录了,但是默认的显示效果可能不太好看,这里将我网站上的样式分享给大家(其实也只是在张戈大神的基础上做了些简单修改以适应本站)。

/* hitokoto一言样式 */
#qtone{
    border-left: 5px solid #00a0f0;
    border-right: 5px solid #00a0f0;
    background-color: #f0f0f0;
    padding: 9px 24px;
    text-align: center;
    font-size:14px;
    color: #63b4f0;
    margin: 9px 0px;
}

效果参考本站首页,如需直接调用本站接口,直接复制下面的代码粘贴到你的网页需要显示的地方:

<script type="text/javascript" src="http://qtxml.cn/tool/qtone/?format=js"></script>

<div id="qtone"><script>qtone()</script></div>

参考:https://blog.quietguoguo.com/1433.html

qtxml.cn 
回复列表
默认   热门   正序   倒序
啦k
2F
啦kLv0
s666666能接口
 0   2020-03-16 14:52:59  回复

回复:自建“一言”功能接口

暂无用户组
退出
等级:0级
金币:
游客:
热门推荐
  1. 福建爱淘-微信小程序帮卖赚佣金-兼职月入过W首选!
  2. 侠客英语--玩游戏背单词
  3. 百度万词霸屏
  4. HadSky轻论坛 - 个人网站建设首选HadSky轻系统!
  5. 易支付-免签支付平台
  6. 可以免费发外链的论坛
  7. 微信小程序帮卖赚佣金-兼职月入过W!
  8. 文字广告位招租 :¥10/月
手机看帖

Powered by HadSky 7.12.10

©2015 - 2024 擎天论坛

联系站长

您的IP:3.91.79.134,2024-03-29 20:55:57,Processed in 0.1286 second(s).

知识共享许可协议
头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息
已有0次打赏
(1) 分享
分享
取消
免责声明
1、本站资源,均来自网络,版权归原作者,所有资源和文章仅限用于学习和研究目的 。
2、不得用于商业或非法用途,否则,一切责任由该用户承担 !

侵权删除请致信 E-Mail:D99888@88.com