利用PHP生成静态html页面的原理


Posted in PHP onSeptember 30, 2016

前言

如果每次用户点击动态链接的时候都会对服务器发送数据查询的要求,对于一个访问量可能达百万千万级别的网站来说 这无疑是服务器一个大大的负担,所以把动态数据转换成静态html页面就成了节省人力物力的首选因为此前没有相应的经验,所以这篇文章和大家分享利用PHP生成静态html页面的原理和方法,有需要的可以一起来看看。

一、思路分析

其实,实现静态页面生成功能的原理很简单,主要利用几个常见的PHP文件操作函数对文件进行操作,其思路流程如下:

利用PHP生成静态html页面的原理
生成静态页面流程图

二、功能实现

设置example.html为模板文件,然后按照此模板文件生成article-1.html~article-5.html,以此来做简单的演示,代码如下:

<?php
//将数据存入二维数组
$con=array(array('文章标题1','文章内容1'),array('文章标题2','文章内容2'),array('文章标题3','文章内容3'),array('文章标题4','文章内容4'),array('文章标题5','文章内容5'));

foreach($con as $id=>$val){ //循环生成
 $title=$val[0];
 $content=$val[1];
 $path="article-".($id+1).".html";

 //替换example内容,并获取内容赋值给$str
 $fp=fopen("example.html","r");
 $str=fread($fp,filesize("example.html"));
 $str=str_replace("{title}",$title,$str);
 $str=str_replace("{content}",$content,$str);
 fclose($fp);

 //新建空白文件,将$str写入
 $handle=fopen($path,"w");
 fwrite($handle,$str);
 fclose($handle);

 echo "生成".$path."<br/>";
}
?>
}

注解:

     fopen(文件名,打开方式),打开文件函数,若无文件,则创建。其返回值为资源型;

     fread(文件名,读取字节数),读取文件内容及对应的字节数;

     str_replace(规定要查找的值,替换被查找值的值,被搜索的字符串),替换函数;

     fclose(文件名),关闭文件;

     fwrite(要写入的打开文件,要写入打开文件的字符串,要写入的最大字节数)。

三、总结

原理比较简单,作为php初学者,要把每个基础知识扎实学好,你的PHP之路定会风光无限,以上就是这篇文章的全部内容了,希望能对各位PHP开发者们能有所帮助,如果有疑问大家可以留言交流。

PHP 相关文章推荐
PHP 5.0对象模型深度探索之绑定
Sep 05 PHP
Snoopy类使用小例子
Apr 15 PHP
一个简单且很好用的php分页类
Oct 26 PHP
php打印输出棋盘的实现方法
Dec 23 PHP
PHP命名空间namespace用法实例分析
Sep 27 PHP
php实现页面纯静态的实例代码
Jun 21 PHP
thinkphp框架page类与bootstrap分页(美化)
Jun 25 PHP
php合并数组并保留键值的实现方法
Mar 12 PHP
PHP实现的解汉诺塔问题算法示例
Aug 06 PHP
PHP bin2hex()函数基础实例讲解
Feb 11 PHP
Smarty模板语法详解
Jul 20 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
Dec 13 PHP
Yii2框架实现注册和登录教程
Sep 30 #PHP
php多线程并发实现方法
Sep 30 #PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
Sep 30 #PHP
分享PHP-pcntl 实现多进程代码
Sep 30 #PHP
PHP编写daemon process详解及实例代码
Sep 30 #PHP
PHP 极验验证码实例讲解
Sep 29 #PHP
php自定义函数转换html标签示例
Sep 29 #PHP
You might like
ZF等常用php框架中存在的问题
2008/01/10 PHP
php使用cookie保存用户登录的用户名实例
2015/01/26 PHP
yii2控制器Controller Ajax操作示例
2016/07/23 PHP
php异常处理捕获错误整理
2019/09/23 PHP
JavaScript 继承详解(一)
2009/07/13 Javascript
一个奇葩的最短的 IE 版本判断JS脚本
2014/05/28 Javascript
jquery实现动态操作select选中
2015/02/11 Javascript
JS实现光滑展开合拢的菜单效果代码
2015/09/16 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
Vue组件开发初探
2017/02/14 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
2017/08/17 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
2017/09/03 jQuery
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
浅谈vue项目打包优化策略
2018/09/29 Javascript
解决vuex改变了state的值,但是页面没有更新的问题
2020/11/12 Javascript
[47:10]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第二场 12.16
2020/12/18 DOTA
Python数据结构与算法之图的基本实现及迭代器实例详解
2017/12/12 Python
利用python对Excel中的特定数据提取并写入新表的方法
2018/06/14 Python
python顺序执行多个py文件的方法
2019/06/29 Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
2020/02/09 Python
eBay意大利购物网站:eBay.it
2019/09/04 全球购物
英语专业学生个人求职信
2014/01/28 职场文书
社区活动邀请函范文
2014/01/29 职场文书
《小小竹排画中游》教学反思
2014/02/26 职场文书
化学系大学生自荐信范文
2014/03/01 职场文书
就业协议书怎么填
2014/04/11 职场文书
道路运输企业安全生产责任书
2014/07/28 职场文书
2014年企业党建工作总结
2014/12/18 职场文书
电影建党伟业观后感
2015/06/01 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书
解决Pytorch修改预训练模型时遇到key不匹配的情况
2021/06/05 Python
Vue + iView实现Excel上传功能的完整代码
2021/06/22 Vue.js
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL
Vue实现跑马灯样式文字横向滚动
2021/11/23 Vue.js
基于docker安装zabbix的详细教程
2022/06/05 Servers