当前位置:首页 > 安卓工具助手

【技術分享】PHP簡單實現博客網站中增补一言 隨機一句功能

很多網站都喜歡在頁麵中加個一言 ,技术P简机句不過一般都是分享調用的第三方api  。其實 ,易实言随使用萬能的现博辅助外挂网站php能通過短短的幾行代碼就實現該功能,跟著安鹿往下行吧 !客网

籌備籌備

首先籌備一個代碼編輯器,站中增补然後新建一個 php 文件,技术P简机句命名為 api.php ,分享再新建一個文件 ,易实言随命名為 alyulu.dat(兩個文件均需采用 UTF-8 編碼,现博否則會亂碼)。客网全网最低辅助科技货源站免费

打開 alyulu.dat ,站中增补在裏麵貼入要隨機顯示出來的技术P简机句文本 ,一行一條。分享

上代碼

將下列代碼複製並粘貼到 api.php 中保存  ,易实言随你的全网辅助科技货源專屬“一言” API 就搭建落成了 !超簡易是不是……

<?php
// 存儲數據的文件
$filename = alyulu.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);
// 隨機得到一行索引
$result = $data[array_rand($data)];
echo $result;

上麵的代碼是用 fopen + fgets 函數實現的,有些摯友似乎不是特別喜歡,覺得“效率低”。別急 ,這兒還有個 file_get_contents 函數實現的辅助科技网站版本:

<?php
// 存儲數據的文件
$filename = alyulu.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; 換成

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

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

示例代碼 :

<script src="http://你的網址.cn/api.php"></script>

Txt文本版

<?php
/**
* WordPress集成一言(Hitokoto)API經典語句功能
*/
// 得到句子文件的絕對路徑
// 如果你介意別人可能會拖行這個文本 ,可以把文件名自定義一下 ,科技辅助卡盟或者通過Nginx禁止拉取也行。
$path = dirname(__FILE__);
$file = file($path."/alyulu.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."/alyulu.txt"); 這裏txt為語錄地址,一行一條!或把上麵下載的alyulu.dat改成alyulu.txt即可 。

分享到: