Featured image of post 一言本地化

一言本地化

一言本地化部署不依赖第三方服务

部署接口

以下代码保存为index.php,然后上传到网站根目录下的hitokoto文件夹

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?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['format'] === 'js') {
    echo "function hitokoto(){document.write('" . $content ."');}";
} else {
    echo $content;
}

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

现在,浏览器访问 yourdomain/hitokoto/ 就可以看到输出内容了。

博客集成

将下面两行代码添加到网页你想显示一言的位置即可:

1
2
<script type="text/javascript" src="https://yourdomain/hitokoto/?format=js&charset=utf-8"></script>
<div id="hitokoto"><script>hitokoto()</script></div>

css代码(可以加到style.css):

1
2
3
4
5
6
7
8
#hitokoto{
    border-left: 5px solid #2f889a;
    border-right: 5px solid #2f889a;
    background-color: #ebebeb;
    padding: 10px;text-align: center;
    color: #095AD4;
    margin: 5px 0 5px 0;
}

原始文章:https://zhang.ge/5127.html

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计