利用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之第二天
Oct 09 PHP
56.com视频采集接口程序(PHP)
Sep 22 PHP
php 字符转义 注意事项
May 27 PHP
PHP 组件化编程技巧
Jun 06 PHP
PHP禁止页面缓存的代码
Oct 23 PHP
php获取操作系统语言代码
Nov 04 PHP
支持中文的PHP按字符串长度分割成数组代码
May 17 PHP
PHP基于接口技术实现简单的多态应用完整实例
Apr 26 PHP
php递归函数怎么用才有效
Feb 24 PHP
php用xpath解析html的代码实例讲解
Feb 14 PHP
Laravel框架Request、Response及Session操作示例
May 06 PHP
php查看一个变量的占用内存的实例代码
Mar 29 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
PHP页面间传递参数实例代码
2008/06/05 PHP
深入理解curl类,可用于模拟get,post和curl下载
2013/06/08 PHP
php+ajax导入大数据时产生的问题处理
2014/06/11 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
WordPress中&quot;无法将上传的文件移动至&quot;错误的解决方法
2015/07/01 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
javascript 表单规则集合对象
2009/07/21 Javascript
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
javascript最常用与实用的创建类的代码
2010/08/12 Javascript
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
一个JavaScript变量声明的知识点
2013/10/28 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
2017/05/20 Javascript
javascript计算对象长度的方法
2017/10/25 Javascript
angularJS的radio实现单项二选一的使用方法
2018/02/28 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
微信小程序实现星星评分效果
2020/11/01 Javascript
[02:22]2018DOTA2亚洲邀请赛VG赛前采访
2018/04/03 DOTA
python编写简单爬虫资料汇总
2016/03/22 Python
删除python pandas.DataFrame 的多重index实例
2018/06/08 Python
python3实现猜数字游戏
2020/12/07 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
2019/12/11 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
一级方程式赛车官方网上商店:F1 Store(支持中文)
2018/01/12 全球购物
英语专业个人求职信范文
2014/02/01 职场文书
会计专业大学生职业生涯规划书
2014/02/11 职场文书
常务副总经理任命书
2014/06/05 职场文书
小学学校评估方案
2014/06/08 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
四风问题原因分析及整改措施
2014/10/24 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
2019军训心得体会
2019/06/27 职场文书
java中用float时,数字后面加f,这样是为什么你知道吗
2021/09/04 Java/Android