搭建一个自己的 “一言” 接口服务,支持PHP和JS调用

KuaiKan 2021-7-18 753

一、使用方法:

将 PHP 代码保存为 index.php,然后上传到网站根目录下的 hitokoto 文件夹(这个自己随机定义)文末提供下载 hitokoto.txt 文本文件

把 hitokoto.txt 上传到和 index.php 同级目录,比如 hitokoto 文件夹内。

现在,浏览器访问 http:// 你的域名 /hitokoto/ 就可以看到输出内容了

<?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;
}

实例数据获取

  • 请求地址:/hitokoto
  • 请求方式:GET
  • 请求编码:接口:charset 参数:UTF-8/GBK (默认 UTF-8)
  • 请求参数:接口:syz 参数:js (为空则返回纯文本)

二、博客集成:

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

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

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

不过,这样输出的字符样式可能是默认的,加入到你博客页脚的标签中,如果没有定义样式,可以自定义一下样式。

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

好了,文章就介绍这么多,喜欢的朋友可以试下了。

多设备自适应,API单独使用方法介绍

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

调用方法

PHP调用方法

添加如下代码到页面头部

<?php $hitokoto = file_get_contents('https://你的域名/other/hitokoto/'); ?>

注意:
需要把代码中的URL地址替换为你自己的URL
然后在需要显示“一言”的标签,插入如下代码:

<?php echo $hitokoto; ?>

JS调用方法

添加如下代码到页面底部;

$.post("https://你的域名/other/hitokoto/", function(hitokoto) {
    $(".content").html(hitokoto);
});

注意

需要把代码中的URL地址替换为你自己的URL
一言输出内容修改hitokoto.txt文件即可,一行一句
JS调用需要jquery.min.js一般主题都有,无需再引用
调用示例请看demo.php

其他一言接口服务

https://hitokoto.cn/api
https://api.ixiaowai.cn/api/ylapi.php
https://api.uixsj.cn/hitokoto/w.php
https://v1.jinrishici.com
Github:https://github.com/galnetwen/hitokoto

签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回