首先准备一个代码编辑器,然后新建一个 php 文件,命名为 api.php,再新建一个文件,命名为 data.dat(两个文件均需采用 UTF-8 编码,否则会乱码)。

打开 data.dat,在里面贴入要随机显示出来的文本,一行一条。如果你暂时想不出什么比较好的句子的话,害羞我这儿准备了几十条古诗名句,可以直接复制使用:

往者不可谏,来着犹可追。——《论语·微子》

多行不义必自毙。——《左传》

敏而好学,不耻下问。——《论语·公冶长》

避其锐气,击其惰归。——《孙子兵法·军争》

十年树木,百年树人。——《管子·权修》

居安思危,思则有备,有备无患。——《左传》

天时不如地利,地利不如人和。——《孟子·公孙丑》

人谁无过?过而能改,善莫大焉。——《论语》

信言不美,美言不信。——老子

满招损,谦受益。——《尚书·大禹谟》

高岸为谷,深谷为陵。——《诗经·小雅》

天作孽,犹可违,自作孽,不可活。——《尚书》

言之无文,行而不远。——《左传》

三军可夺帅也,匹夫不可夺志也。——《论语·子罕》

天行健,君子以自强不息。——《周易·乾·象》

皮之不存,毛将焉附。——《左传》

路漫漫其修远兮,吾将上下而求索。——屈原《离骚》

长太息以掩涕兮,哀民生之多艰。——屈原《离骚》

人而无仪,不死何为。——《诗经·鄘风》

捐躯赴国难,视死忽如归。——曹植《白马篇》

天下之事常成于困约,而败于奢靡。——陆游

知之者不如好之者,好之者不如乐之者。——《论语·雍也》

志当存高远。——诸葛亮《诫外生书》

不去庆父,鲁难未已。——《左传》

老吾老,以及人之老;幼吾幼,以及人之幼。——《孟子·梁惠王下》

博学之,审问之,慎思之,明辨之,笃行之。——《中庸》

人非圣贤,孰能无过。——《训俗遗规》

亦余心之所善兮,虽九死其犹未悔。——《屈原·离骚》

若要功夫深,铁杵磨成针。——曹学《蜀中广记·上川南道彭山县》

少壮不努力,老大徒悲伤。——汉乐府古辞《长歌行》

穷则独善其身,达则兼济天下。——《孟子·尽心上》

仁者见仁,智者见智。——《易经·系辞上》

青,取之于蓝而青于蓝;冰,水为之而寒于水。——《荀子·劝学》

千羊之皮,不如一狐之腋。——《史记》

余将董道而不豫兮,固将重昏而终身。——《屈原·涉江》

高山仰止,景行行止。——《诗经·小雅·车辖》

锲而舍之,朽木不折;锲而不舍,金石可镂。——《荀子·劝学》

不傲才以骄人,不以宠而作威。——诸葛亮

尺有所短;寸有所长。物有所不足;智有所不明。——屈原《卜居》

言必信,行必果。——《论语·子路》

有志者事竟成。——《后汉书·耿列传》

其身正,不令而行;其身不正,虽令不从。——论语·子路

三人行,必有我师焉:择其善而从之,其不善者而改之。——《论语·述而》

非学无以广才,非志无以成学。——《三国·诸葛亮·诫子书》

绳锯木断,水滴石穿。——罗大经《鹤林玉露》

君子坦荡荡,小人长戚戚。——孔子

老当益壮,宁知白首之心;穷且益坚,不坠青云之志。——王勃

尺有所短,寸有所长。——《史记》

他山之石,可以攻玉。——《诗经·小雅·鹤鸣》

苟余心之端直兮,虽僻远其何伤?——《屈原·涉江》

人有不为也,而后可以有为。——《孟子·离娄下》

路漫漫其修远今,吾将上下而求索。——屈原

孔子登东山而小鲁,登泰山而小天下。——《孟子·尽心上》

积土而为山,积水而为海。——《荀子·儒效》

生于忧患,死于安乐。——《孟子·告子下》

知足不辱,知止不殆。——老子

桃李不言,下自成蹊。——《史记》

傲不可长,欲不可纵,乐不可极,志不可满。——魏徵

既来之,则安之。——《论语·季氏》

知己知彼,百战不殆。——《孙子兵法·谋攻》

真者,精诚之至也,不精不诚,不能动人。——《庄子·渔夫》

独学而无友,则孤陋而寡闻。——《礼记·杂记》

勿以恶小而为之,勿以善小而不为。惟贤惟德,能服于人。——刘备

将下列代码复制并粘贴到 api.php 中保存,你的专属“一言” API 就搭建完成了:

// 存储数据的文件

$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 函数实现的版本:

// 存储数据的文件

$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;

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

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

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

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

示例代码:

php 记事本源代码_PHP简单实现一言 / 随机一句功能相关推荐

  1. php采集一言代码_PHP简单实现一言 / 随机一句功能

    很多网站都喜欢在页面中加个一言,不过一般都是调用的第三方api.其实,使用万能的php能用短短的几行代码就实现该功能! 将下列代码复制并粘贴到 api.php 中保存,你的专属"一言&quo ...

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

    很多网站都喜欢在页面中加个一言,不过一般都是调用的第三方api.其实,使用万能的php能用短短的几行代码就实现该功能! 将下列代码复制并粘贴到 api.php 中保存,你的专属"一言&quo ...

  3. php采集一言代码_用PHP制作api源码简单实现一言 / 随机一句功能

    很多人都喜欢在自己的网站页面中加个一言,不过一般都是调用的第三方api.其实,使用phpfile_get_contents 函数就能通过短短的几行代码就实现该功能! 准备工作 首先准备一个代码编辑器, ...

  4. php 记事本源代码_php实现记事本案例

    本文实例为大家分享了php实现记事本的具体代码,供大家参考,具体内容如下 记事本案例 要求:1)页面上有一个文本域(textarea元素),和一个发表按钮 2)用户在文本域中输入内容后,点击发表按钮, ...

  5. php 记事本源代码_php 日历记事本 以及数据库

    [实例简介] php 版记事本,日历形式,可以翻页,可以查询,本人已经和ci框架完美结合. [实例截图] [核心代码] fullcalendar_opt └── fullcalendar_opt ├─ ...

  6. html网页随机一言,PHP简单实现一言 / 随机语录功能

    教程开始: 1.首先新建一个php文件,命名为api.php(这里小牛云站长推荐用notepad++编辑代码) 2.再新建一个文件,命名为data.dat(两个文件均需采用UTF-8 编码,否则会乱码 ...

  7. java记事本写玫瑰花代码_Java记事本源代码(完整)

    <Java记事本源代码(完整)>由会员分享,可在线阅读,更多相关<Java记事本源代码(完整)(13页珍藏版)>请在人人文库网上搜索. 1.* 作品:记事本* 作者:* 功能: ...

  8. 用java做一个简单记事本_用记事本写一个简单的java程序

    用记事本写一个简单的java程序 第一步: 安装好jdk,并设置好环境变量. 桌面-计算机(右键)-属性-高级系统设置-环境变量-path-在变量值后加上:和jdk安装路径加上(路径即为C:\Prog ...

  9. java 记事本源代码_JAVA记事本源代码 收藏

    JAVA记事本源代码 import java.awt.*; import java.awt.event.*; import java.text.*; import java.util.*; impor ...

最新文章

  1. SpringBoot升级到2.3.x后返回message为空
  2. sql 2012中获取表的信息,包含字段的描述
  3. 嵌入式处理器 cisc risc_RISC-V能否“重构”芯片产业格局
  4. 一建机电实务教材电子版_2020一建教材+章节习题+新旧教材对比【全科】免费送...
  5. 4款bt search
  6. WIN7系统一个盘分多个盘的方法
  7. 在Ubuntu系统中给应用创建快捷方式
  8. win10 桌面背景最短切换时间由1分钟改为10秒
  9. Thinkpadt450 win7下面禁用触摸板
  10. mac上如何提取图片上的文字?几款不错的OCR文字识别工具推荐
  11. 拓扑量子计算机有缺点,一个荷兰硕士生的新模型有助于描述量子计算机中的缺陷和错误...
  12. 今天上班穿了一只拖鞋和一只凉鞋
  13. android大作业报告总结,android大作业总结报告.doc
  14. JavaWeb中 pojo、entity、Dao、bo的含义
  15. 免密登录驾考网使用selenium自动爬取模拟试题
  16. 扫宽、分辨率和扫描时间
  17. Windows11设置共享打印机
  18. CSAPP第八、九章家庭作业(原书第二版)
  19. NVl和NVL2的语法使用详解
  20. 微信小程序子组件向父组件传值的两个方法

热门文章

  1. 清洁单反相机镜头的方法与步骤解析
  2. Nginx 连接 Redis 实现数据库操作
  3. js比较日期 - JavaScript
  4. 拼多多卖家如何做好直通车?
  5. C 语言零基础入门教程(十一)
  6. 销售要敢于逼单,你会逼单吗?
  7. pyinstaller打包技巧
  8. 机器学习 —— Boosting算法
  9. PyQt5 | PyQt5打开图片、视频、摄像头
  10. 上周五NYMEX原油期货0810合约下跌6.59美元/桶,国际油价创17年来最大单日跌幅