福否阿卡 · 博客福否阿卡 · 博客

福否阿卡
一个励志成为全栈的90后小伙子~

PHP简单实现一言 / 随机一句功能

PHP简单实现一言 / 随机一句功能

1.新建api.php文件(调取用)

代码:

    
<?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);
     
// 随机获取一行索引
$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);
 
// 随机获取一行索引
$result = $data[array_rand($data)];
 
// 去除多余的换行符(保险起见)
$result = str_replace(array("\r","\n","\r\n"), '', $result);
 
echo $result;

2.新建data.dat文件(存储数据用,一行一条,可以自己添加)

往者不可谏,来着犹可追。——《论语·微子》
多行不义必自毙。——《左传》
敏而好学,不耻下问。——《论语·公冶长》
避其锐气,击其惰归。——《孙子兵法·军争》
十年树木,百年树人。——《管子·权修》
居安思危,思则有备,有备无患。——《左传》
天时不如地利,地利不如人和。——《孟子·公孙丑》
人谁无过?过而能改,善莫大焉。——《论语》
信言不美,美言不信。——老子
满招损,谦受益。——《尚书·大禹谟》
高岸为谷,深谷为陵。——《诗经·小雅》
天作孽,犹可违,自作孽,不可活。——《尚书》
言之无文,行而不远。——《左传》
三军可夺帅也,匹夫不可夺志也。——《论语·子罕》
天行健,君子以自强不息。——《周易·乾·象》
皮之不存,毛将焉附。——《左传》
路漫漫其修远兮,吾将上下而求索。——屈原《离骚》
长太息以掩涕兮,哀民生之多艰。——屈原《离骚》
人而无仪,不死何为。——《诗经·鄘风》
捐躯赴国难,视死忽如归。——曹植《白马篇》
天下之事常成于困约,而败于奢靡。——陆游
知之者不如好之者,好之者不如乐之者。——《论语·雍也》
志当存高远。——诸葛亮《诫外生书》
不去庆父,鲁难未已。——《左传》
老吾老,以及人之老;幼吾幼,以及人之幼。——《孟子·梁惠王下》
博学之,审问之,慎思之,明辨之,笃行之。——《中庸》
人非圣贤,孰能无过。——《训俗遗规》
亦余心之所善兮,虽九死其犹未悔。——《屈原·离骚》
若要功夫深,铁杵磨成针。——曹学《蜀中广记·上川南道彭山县》
少壮不努力,老大徒悲伤。——汉乐府古辞《长歌行》
穷则独善其身,达则兼济天下。——《孟子·尽心上》
仁者见仁,智者见智。——《易经·系辞上》
青,取之于蓝而青于蓝;冰,水为之而寒于水。——《荀子·劝学》
千羊之皮,不如一狐之腋。——《史记》
余将董道而不豫兮,固将重昏而终身。——《屈原·涉江》
高山仰止,景行行止。——《诗经·小雅·车辖》
锲而舍之,朽木不折;锲而不舍,金石可镂。——《荀子·劝学》
不傲才以骄人,不以宠而作威。——诸葛亮
尺有所短;寸有所长。物有所不足;智有所不明。——屈原《卜居》
言必信,行必果。——《论语·子路》
有志者事竟成。——《后汉书·耿列传》
其身正,不令而行;其身不正,虽令不从。——论语·子路
三人行,必有我师焉:择其善而从之,其不善者而改之。——《论语·述而》
非学无以广才,非志无以成学。——《三国·诸葛亮·诫子书》
绳锯木断,水滴石穿。——罗大经《鹤林玉露》
君子坦荡荡,小人长戚戚。——孔子
老当益壮,宁知白首之心;穷且益坚,不坠青云之志。——王勃
尺有所短,寸有所长。——《史记》
他山之石,可以攻玉。——《诗经·小雅·鹤鸣》
苟余心之端直兮,虽僻远其何伤?——《屈原·涉江》
人有不为也,而后可以有为。——《孟子·离娄下》
路漫漫其修远今,吾将上下而求索。——屈原
孔子登东山而小鲁,登泰山而小天下。——《孟子·尽心上》
积土而为山,积水而为海。——《荀子·儒效》
生于忧患,死于安乐。——《孟子·告子下》
知足不辱,知止不殆。——老子
桃李不言,下自成蹊。——《史记》
傲不可长,欲不可纵,乐不可极,志不可满。——魏徵
既来之,则安之。——《论语·季氏》
知己知彼,百战不殆。——《孙子兵法·谋攻》
真者,精诚之至也,不精不诚,不能动人。——《庄子·渔夫》
独学而无友,则孤陋而寡闻。——《礼记·杂记》
勿以恶小而为之,勿以善小而不为。惟贤惟德,能服于人。——刘备

如何在静态页面中引用

上面的代码都是直接在页面中就输出了随机的句子。如果想像一言那样在静态的网页中引用这个 api,该如何实现呢?

很简单,将最后那一行的 echo $result; 换成
PHP

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

然后在需要的位置用引入 js 的方式进行调用即可。

示例代码:
HTML

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

原文:https://mkblog.cn/1748/
都是福否阿卡要学习的人啊,大神。

本文由福否阿卡创作,文章地址:https://blog.suyc.cn/index.php/archives/96.html

采用知识共享署名3.0国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。

发表评论:抢沙发

    昵称 (必填)
  • 邮箱 (必填)
  • 网址