🌚

HI DARING

一言(Hitokoto/ヒトコト)api

一言

刷新一下就会变哦

# 一言(Hitokoto/ヒトコト)api ## 前 言 最近中二病愈加严重 所以要收集一些中二点的话用来使用 于是本loli就把目光投向了一言这个项目里,找了下开源项目 都没有找到合适的大多数都是 nodejs的 但是我又不熟悉node.js 就在收集数据的时候 我把目光投向了[@小霖](https://xiaolin.in/read/hitokoto-api-xiaolin-edition.html)的hitokoto。 但是小霖的是极简api 简介的只剩下文字 这样并不能满足(个人喜欢)我的需求 于是给予小霖的hitokoto做了修改 ## php源码
<?php
require_once __DIR__ . '/vendor/autoload.php';
function get_data()
{
    $db = new \Buki\Pdox([
        'host' => '127.0.0.1',
        'port' => 3306,
        'username' => 'username',
        'password' => 'password',
        'database' => 'database',
    ]);
    $num = rand(1,$db->table('hitokoto')->count('id','total_row')->get()->total_row);
    return $db->table('hitokoto')->where('id',$num)->get();
}
if (@mb_convert_case($_GET['charset'],MB_CASE_UPPER) == 'UTF-8') $charset = 'UTF-8'; else $charset = 'GBK';
if (empty($_GET['code'])) $code = 'text'; else $code = $_GET['code'];
switch ($code)
{
    case 'js':
        $str = "document.getElementById('hitokoto').innerText = '" . trim(get_data()->content) . "';";
        break;
    default:
        $str = trim(get_data()->content);
        break;
}
header("Content-type: text/html; charset={$charset}");
if ($charset == 'UTF-8') echo $str; else echo mb_convert_encoding($str,$charset);
?>
## 修改内容
<?php
require_once __DIR__ . '/vendor/autoload.php';
function get_data()
{
    $db = new \Buki\Pdox([
        'host' => 'localhost',
        'port' => 3306,
        'username' => 'username',
        'password' => 'password',
        'database' => 'database',
    ]);
    $num = rand(1,$db->table('hitokoto')->count('num','total_row')->get()->total_row);
    return $db->table('hitokoto')->where('num',$num)->get();
}
if (@mb_convert_case($_GET['charset'],MB_CASE_UPPER) == 'GBK') 
	$charset = 'GBK'; 
else 
	$charset = 'UTF-8';
if (empty($_GET['id'])) 
	$id = 'hitokoto'; 
else 
	$id = $_GET['id'];

if (empty($_GET['code'])) $code = 'text'; 
else $code = $_GET['code'];
switch ($code)
{
    
	case 'js':
		$str = "document.getElementById('$id').innerText = '『" . trim(get_data()->text) . "』-「" . trim(get_data()->source) . "」';";
        break;
    default:
        $str = " 『" . trim(get_data()->text) . "』-「" . trim(get_data()->source) . "」";
		break;
}
header("Content-type: text/html; charset={$charset}");
if ($charset == 'UTF-8') echo $str; else echo mb_convert_encoding($str,$charset);
?>
这里我对数据表的字段进行了修改 ### 原数据库结构
create table hitokoto
(
  id      int auto_increment
    primary key,
  content longtext        null,
  score   float default '2.5' null,
  author  text            null,
  origin  text            null
);
### 数据结构修改 我将数据表的 `id` `content` 字段修改成了`num`和`text` 并并且新增作者`source`字段 并且适应了[@毛与向日葵](https://imjad.cn/)的一言数据库。 和新增了js id # 使用方式 ## 数据获取

请求地址:https://api.ohyhello.com/hitokoto
请求方式:GET
使用文档https://api.ohyhello.com/hitokoto.html
迁移blog的时候已经失效了

实例 js

js调用源码

<p id="hitokotoss"></p>
<script type="text/javascript" src="https://api.ohyhello.com/hitokoto/?code=js&id=hitokotoss"></script>

#依赖

composer require izniburak/pdox

[数据库下载](https://github.com/ohyhello/ohyhello.github.io/blob/master/2018/09/24/hitokoto/hitokoto.sql)

— Sep 24, 2018


Made with ❤ and Hexo.js at Earth.