利用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分页函数
Jul 08 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
Nov 25 PHP
使用dump函数,给php加断点测试
Jun 25 PHP
php中print(),print_r(),echo()的区别详解
Dec 01 PHP
如何用PHP来实现一个动态Web服务器
Jul 29 PHP
利用PHP如何实现Socket服务器
Sep 23 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
Mar 06 PHP
简单谈谈php浮点数精确运算
Mar 10 PHP
php模拟post上传图片实现代码
Jun 24 PHP
php中bind_param()函数用法分析
Mar 28 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
Feb 06 PHP
PHP随机数函数rand()与mt_rand()的讲解
Mar 25 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 一个随机字符串生成代码
2010/05/26 PHP
php查询操作实现投票功能
2016/05/09 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
2016/07/06 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
WordPress JQuery处理沙发头像
2009/06/22 Javascript
javascript来定义类的规范小结
2010/11/19 Javascript
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
2011/05/10 Javascript
JS重要知识点小结
2011/11/06 Javascript
jQuery实现统计复选框选中数量
2014/11/24 Javascript
AngularJS基础 ng-mouseenter 指令示例代码
2016/08/02 Javascript
Vue.js实现简单ToDoList 前期准备(一)
2016/12/01 Javascript
微信小程序开发(一) 微信登录流程详解
2017/01/11 Javascript
原生js轮播(仿慕课网)
2017/02/15 Javascript
JS三目运算(三元运算)方法详解
2017/03/01 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
taro开发微信小程序的实践
2019/05/21 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
vue 获取视频时长的实例代码
2019/08/20 Javascript
[50:58]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 Mineski vs EG
2018/04/03 DOTA
详解python中自定义超时异常的几种方法
2019/07/29 Python
PyQt5+Pycharm安装和配置图文教程详解
2020/03/24 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
2020/05/23 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
洛杉矶时尚女装系列:J.ING US
2019/03/17 全球购物
瑞典度假品牌:OAS
2019/05/28 全球购物
师范应届生教师求职信
2013/11/05 职场文书
创先争优活动方案
2014/02/12 职场文书
楼面经理岗位职责范本
2014/02/18 职场文书
报告会主持词
2014/04/02 职场文书
《画杨桃》教学反思
2014/04/13 职场文书
大学生个人求职信
2014/06/02 职场文书
十周年庆典策划方案
2014/06/03 职场文书
文艺演出策划方案
2014/06/07 职场文书
音乐教师个人总结
2015/02/06 职场文书
JS实现数组去重的11种方法总结
2022/04/04 Javascript