banner
Magneto

Magnetoの小屋

Magneto在區塊鏈上の小屋,讓我們的文章在互聯網上永遠熠熠生輝!!

自建一言API

前言#

多くのウェブサイトはページに一言を追加するのが好きですが、一般的にはサードパーティの API を呼び出しています。実際、万能の PHP を使えば、わずか数行のコードでこの機能を実現できます。

準備作業#

まず、コードエディタを用意し、新しい PHP ファイルを作成して api.php と名付け、次に data.dat という名前のファイルを新しく作成します(両方のファイルは UTF-8 エンコーディングを使用する必要があります。さもなければ文字化けします)。

data.dat を開き、ランダムに表示したいテキストを貼り付けます。一行一条 。もし良い文が思いつかない場合は、ここに用意した数十の网易云の熱評を直接ダウンロードして引用できます。

コードを書く#

以下のコードをコピーして api.php に貼り付けて保存すれば、あなた専用の「一言」API が完成です!超簡単ですよね……

<?php
// データを保存するファイル
$filename = 'data.dat';        
// ページのエンコーディングを指定
header('Content-type: text/html; charset=utf-8');
if(!file_exists($filename)) {
    die($filename . ' データファイルが存在しません');
}
$data = array();
// ドキュメントを開く
$fh = fopen($filename, 'r');
// 行ごとに読み取り、配列に格納
while (!feof($fh)) {
    $data[] = fgets($fh);
}
// ドキュメントを閉じる
fclose($fh);
// ランダムに1行のインデックスを取得
$result = $data[array_rand($data)];
echo $result;

上記のコードは fopen + fgets 関数を使用して実現されていますが、一部の友人はあまり好きではないようで、「効率が悪い」と感じています。心配しないでください、ここには file_get_contents 関数を使用したバージョンもあります:

<?php
// データを保存するファイル
$filename = 'data.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);
// ランダムに1行のインデックスを取得
$result = $data[array_rand($data)];
// 不要な改行を削除(念のため)
$result = str_replace(array("\r","\n","\r\n"), '', $result);
echo $result;

静的ページでの引用方法

上記のコードは、ページ内でランダムな文を直接出力しています。一言のように静的なウェブページでこの API を引用したい場合、どうすれば実現できるでしょうか?

簡単です。最後の行の echo $result; を次のように変更します。

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

そして、必要な場所で JS をインクルードする方法で呼び出せば OK です。

サンプルコード:

<script src="http://あなたのURL/api.php"></script>

この記事は Mix Space によって xLog に同期更新されました
元のリンクは https://blog.fmcf.cc/posts/technology/Custom_Hitokoto_API


読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。