PHP简单实现一言 / 随机一句功能
很多网站都喜欢在页面中加个一言,不过一般都是调用的第三方api。其实,使用
万能的php能用短短的几行代码就实现该功能!
将下列代码复制并粘贴到 api.php 中保存,你的专属“一言” API 就搭建完成了!超简单是不是……
<?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;
如何在静态页面中引用
上面的代码都是直接在页面中就输出了随机的句子。如果想像一言那样在静态的网页中引用这个 api,该如何实现呢?
很简单,将最后那一行的 echo $result; 换成
echo 'document.write("'.htmlspecialchars($result).'");';
然后在需要的位置用引入 js 的方式进行调用即可。
示例代码:
<script src="http://你的网址.cn/api.php"></script>
附:data.dat文件下载。点我下载
本文版权所属孟坤博客,转载请注明出处。
PHP简单实现一言 / 随机一句功能的更多相关文章
- 数据结构和算法(Golang实现)(1)简单入门Golang-前言
数据结构和算法在计算机科学里,有非常重要的地位.此系列文章尝试使用 Golang 编程语言来实现各种数据结构和算法,并且适当进行算法分析. 我们会先简单学习一下Golang,然后进入计算机程序世界的第 ...
- Django开发简单采集用户浏览器信息的小功能
Django开发简单采集用户浏览器信息的小功能 Centos环境准备 yum install –y python-pip export http_proxy=http://10.11.0.148:80 ...
- 前端开发:mock.js的简单应用(生成随机数据,拦截 Ajax 请求)
摘要 在前端开发过程中,后端接口还没有完全开发完成时,前端开发人员就需要学会自己模拟后端接口数据,更快更好的完成开发任务.模拟后端接口数据的js库有很多,今天就简单就简单的分享下mock.js在前端开 ...
- 简单JavaScript语句实现搜索关键字高亮功能
高亮功能主要是指对页面中指定区域的指定文字进行高亮显示,也就是背景着色.一般在搜索结果页面会经常用到这个功能. 下面就为大家提供一种解决方案,用javascript实现. 首先在<head> ...
- 使用AngularJS实现简单:全选和取消全选功能
这里用到AngularJS四大特性之二----双向数据绑定 注意:没写一行DOM代码!这就是ng的优点,bootstrap.css为了布局,JS代码也只是简单创建ng模块和ng控制器 效果: < ...
- FusionCharts简单教程(七)-----使用FusionCharts实现下钻功能
前面介绍的FusionCharts都是对FusionCharts的基本属性进行操作,下面几篇博文就FusionCharts的高级特性做一个介绍,包括:添加下钻链接.使用Style样式定制图 ...
- 简单实现Redis缓存中的排序功能
1.在实现缓存排序功能之前,必须先明白这一功能的合理性.不妨思考一下,既然可以在数据库中排序,为什么还要把排序功能放在缓存中实现呢?这里简单总结了两个原因:首先,排序会增加数据库的负载,难以支撑高并发 ...
- 较简单的用ajax修改和添加功能(链接数据库)
修改和添加关于数据库的信息,可以用于任何的添加和修改 这些数据库和前面的随笔数据库是一样的 一.显示出数据库中的信息 (1)显示的效果也可以是用bootstrap的标签页显示(前面一定要引入boots ...
- 简单记录numpy库的某些基本功能
这里介绍python的一个库,numpy库,这个库是机器学习,数据分析最经常用到的库之一,也是利用python做数据必须用到的一个库,入门机器学习学的第一个python库就是它了. 先对其导入到pyt ...
随机推荐
- Path expected for join!的解决办法
Path expected for join! [SELECT count(*) FROM cn.com.jsoft.entities.TDSysnphoto p left join TDSysnot ...
- oracle job SYSDATE
hr BEGIN SYS.DBMS_JOB.REMOVE(); COMMIT; END; / DECLARE X NUMBER; BEGIN SYS.DBMS_JOB.SUBMIT ( job =&g ...
- elasticsearch2.x插件之一:marvel(配置)
Marvel是Elastic公司推出的商业监控方案,是用来监控Elasticsearch集群,历史状态的有力工具,便于性能优化以及故障诊断.监控主要分为六个层面,分别是集群层.节点层.索引层.分片层. ...
- 使用clr 调用C#编写的dll中的方法的全解释
使用clr 调用C#编写的dll中的方法的全解释1.数据库初始化:将下面这段代码直接在运行就可以初始化数据库了exec sp_configure 'show advanced options', '1 ...
- Win10 DHCP和Static IP 切换
创建两个.bat文件,分别命名为static.bat和dhcp.bat static.bat文件写入 netsh interface ip set address "Wi-Fi" ...
- python if __name__ == '__main__' 作用
转载:https://stackoverflow.com/questions/419163/what-does-if-name-main-do When your script is run by p ...
- sql修改排序规则,区分大小
alter database 数据库 COLLATE Chinese_PRC_CS_AS 修改排序规则,改成大小写敏感的排序规则 如果只修改一个表,用alter t ...
- 献上一款漂亮的手写PHP验证码
献上一款漂亮的PHP验证码,可以根据个人需求作调整,代码如下(审美观不同,欢迎吐槽): <?php /** * Author: xiongwei * Email: 695704253@qq.co ...
- Linux下为Eclipse安装hadoop插件
前提条件:在Linux系统中已经安装好了jdk和hadoop 本文的安装环境:1.arch Linux 2. hadoop1.0.1本地伪分布模式安装 3. Eclipse 4.5 1. 下载Ecl ...
- vi常用快捷键汇总
第一部分:光标移动.复制粘贴.查找替换 [Ctrl] + [f] 下一页 [Ctrl] + [b] 上一页 0或[home] 到行首 $或[end] 到行尾 G 到最后一行 gg ...