利用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实现维护文件代码
Jun 14 PHP
让你成为更出色的PHP开发者的10个技巧
Feb 25 PHP
php Rename 更改文件、文件夹名称
May 24 PHP
PHP应用JSON技巧讲解
Feb 03 PHP
浅析PHP递归函数返回值使用方法
Feb 18 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
Mar 18 PHP
ThinkPHP快速入门实例教程之数据分页
Jul 01 PHP
php中$_POST与php://input的区别实例分析
Jan 07 PHP
php+mysqli事务控制实现银行转账实例
Jan 29 PHP
thinkPHP中_initialize方法实例分析
Dec 05 PHP
PHP基于ORM方式操作MySQL数据库实例
Jun 21 PHP
PHP实现PDO操作mysql存储过程示例
Feb 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
syphon 虹吸式咖啡冲泡冲煮倒水的得与失
2021/03/03 冲泡冲煮
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
php笔记之常用文件操作
2010/10/12 PHP
PHP接收json 并将接收数据插入数据库的实现代码
2015/12/01 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
2019/04/10 PHP
JavaScript入门教程 Cookies
2009/01/31 Javascript
Javascript将string类型转换int类型
2010/12/09 Javascript
模拟select的代码
2011/10/19 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
javascript对下拉列表框(select)的操作实例讲解
2013/11/29 Javascript
JS判断浏览器是否支持某一个CSS3属性的方法
2014/10/17 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
深入理解JavaScript系列(44):设计模式之桥接模式详解
2015/03/04 Javascript
jquery控制表单输入框显示默认值的方法
2015/05/22 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
Angular JS数据的双向绑定详解及实例
2016/12/31 Javascript
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
Vue开发环境中修改端口号的实现方法
2019/08/15 Javascript
JS实现简单贪吃蛇小游戏
2020/10/28 Javascript
[51:28]EG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/16 DOTA
对python中的iter()函数与next()函数详解
2018/10/18 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
Python3并发写文件与Python对比
2019/11/20 Python
CSS3制作气泡对话框的实例教程
2016/05/10 HTML / CSS
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
波兰最大的度假胜地和城市公寓租赁运营商:Sun & Snow
2018/10/18 全球购物
2013的个人自我评价
2013/12/26 职场文书
大学毕业生自荐书怎么写?
2014/01/06 职场文书
纪念建党演讲稿范文
2014/01/13 职场文书
幼儿园新学期寄语
2014/01/18 职场文书
2014年银行员工工作总结
2014/11/12 职场文书
教您:房贷工资收入证明应该怎么写?
2019/08/19 职场文书
深入理解go slice结构
2021/09/15 Golang
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS