利用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&amp;mysql(五)
Oct 09 PHP
PHP新手上路(九)
Oct 09 PHP
php异常处理使用示例
Feb 25 PHP
PHP实现下载断点续传的方法
Nov 12 PHP
thinkphp连贯操作实例分析
Nov 22 PHP
WordPress中is_singular()函数简介
Feb 05 PHP
PHP随机生成唯一HASH值自定义函数
Apr 20 PHP
在Mac上编译安装PHP7的开发环境
Jul 28 PHP
浅谈PHP中的
Apr 23 PHP
php cli模式下获取参数的方法
May 05 PHP
Yii框架模拟组件调用注入示例
Nov 11 PHP
php 的多进程操作实践案例分析
Feb 28 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
Terran建筑一览
2020/03/14 星际争霸
PHP 和 MySQL 基础教程(四)
2006/10/09 PHP
怎么在Windows系统中搭建php环境
2013/08/31 PHP
php发送html格式文本邮件的方法
2015/06/10 PHP
学习php设计模式 php实现模板方法模式
2015/12/08 PHP
php使用PDO下exec()函数查询执行后受影响行数的方法
2017/03/28 PHP
PHP 多任务秒级定时器的实现方法
2018/05/13 PHP
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
基于jquery的拖动布局插件
2011/11/25 Javascript
页面实时更新时间的JS实例代码
2013/12/18 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
2014/11/17 Javascript
jQuery构造函数init参数分析续
2015/05/13 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
2016/12/26 Javascript
JS实现基于拖拽改变物体大小的方法
2018/01/23 Javascript
使用百度地图实现地图网格的示例
2018/02/06 Javascript
vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)
2019/08/17 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
2019/09/05 Javascript
Vue插件之滑动验证码用法详解
2020/04/05 Javascript
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
python实现将英文单词表示的数字转换成阿拉伯数字的方法
2015/07/02 Python
Python之web模板应用
2017/12/26 Python
django的model操作汇整详解
2019/07/26 Python
python 实现的车牌识别项目
2021/01/25 Python
html5嵌入内容_动力节点Java学院整理
2017/07/07 HTML / CSS
amazeui模态框弹出后立马消失并刷新页面
2020/08/19 HTML / CSS
Avène雅漾美国官方网站:敏感肌肤护理专家
2016/10/24 全球购物
文员个人求职自荐信
2013/09/21 职场文书
自荐书范文
2013/12/08 职场文书
五年后的职业生涯规划
2014/03/04 职场文书
《郑和远航》教学反思
2014/04/16 职场文书
安全协议书
2014/04/23 职场文书
男方婚礼答谢词
2015/01/20 职场文书
2015年小学生自我评价范文
2015/03/03 职场文书
会计做账心得体会
2016/01/22 职场文书
Golang入门之计时器
2022/05/04 Golang