熱評
加載中...
當前位置:首頁技術館建站教學網站建設PHP簡單實現隨機一言API

PHP簡單實現隨機一言API

很多網站都會用到一言功能,不過一般都是調用的第三方api。其實實現方法很簡單,就是提前準備一個TXT文本文檔,裡面塞上成千上萬句的毒雞湯,然後讀取內容隨機輸出!

準備工作

首先準備一個代碼編輯器,然後新建一個 php 檔,命名為 api.php,再新建一個檔,命名為 jcyulu.dat(兩個檔均需採用 UTF-8 編碼,否則會亂碼)。

打開 jcyulu.dat,在裡面貼入要隨機顯示出來的文本,一行一條。

使用教學

將下列代碼複製並粘貼到 api.php 中保存,你的專屬“一言” API 就搭建完成了!

<?php

/*
 * 名稱:隨即一言
 * 博客:angelal.cc
 * 作者:AngelaL
 * 時間:2024年12月17日
*/

// 存儲數據的文件
$filename = 'jcyulu.dat';        
 
// 指定頁面編碼
header('Content-type: text/html; charset=utf-8');
 
if(!file_exists($filename)) {
    die($filename . ' 數據文件不存在');
}
 
// 讀取整個數據文件
$data = file_get_contents($filename);
 
// 按換行符分割成數組
$data = explode(PHP_EOL, $data);
 
// 隨機獲取一行索引
$result = $data[array_rand($data)];
 
// 去除多餘的換行符(保險起見)
$result = str_replace(array("\r","\n","\r\n"), '', $result);
 
echo $result;

如何在靜態頁面中引用

上面的代碼都是直接在頁面中就輸出了隨機的句子。 如果想像一言那樣在靜態的網頁中引用這個 api,該如何實現呢?

很簡單,將最後那一行的 echo $result; 換成

PHP
echo 'document.write("'.htmlspecialchars($result).'");';

然後在需要的位置用引入 js 的方式進行調用即可。

範例代碼:

HTML
<script src="https://你的網址.com/api.php"></script>

(↑↑↑ 刷新一下頁面,會有不同的句子)

Txt文本版

PHP
<?php
/**
 * WordPress集成一言(Hitokoto)API經典語句功能
 */
// 獲取句子文件的絕對路徑
// 如果你介意別人可能會拖走這個文本,可以把文件名自定義一下,或者通過Nginx禁止拉取也行。
$path = dirname(__FILE__);
$file = file($path."/jcyulu.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;
}

$file = file($path.” /jcyulu.txt”); 這裡txt為語錄位址,一行一條! 或把上面下載的jcyulu.dat改成jcyulu.txt即可。

一言有了,圖片也不能落下,上菜!

PHP簡單實現隨機一言API-AngelaL博客
PHP簡單實現隨機一言API-AngelaL博客

PHP 實現隨機圖像功能

AngelaL博客

       本文是原創文章,採用CC BY-NC-SA 4.0協議,完整轉載請註明來自AngelaL博客

給TA打賞
共{{data.count}}人
人已打賞
網站建設

蘋果備忘錄秒變個人網站

2025-2-25 23:15:06

網站建設

PHP 實現隨機圖像功能

2025-2-26 19:52:45

0 條回复 A文章作者 M管理员
    
    暫無討論,說說你的看法吧
個人中心
購物車
優惠劵
今日簽到
有新私信 私信列表
搜索