利用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
常用表单验证类,有了这个,一般的验证就都齐了。
Dec 06 PHP
php 多关键字 高亮显示实现代码
Apr 23 PHP
PHP删除目录及目录下所有文件的方法详解
Jun 06 PHP
十幅图告诉你什么是PHP引用
Feb 22 PHP
php简单操作mysql数据库的类
Apr 16 PHP
php文件操作之小型留言本实例
Jun 20 PHP
ThinkPHP控制器详解
Jul 27 PHP
php对文件夹进行相关操作(遍历、计算大小)
Nov 04 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
Aug 01 PHP
php使用 readfile() 函数设置文件大小大小的方法
Aug 11 PHP
PHP-X系列教程之内置函数的使用示例
Oct 16 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 smarty的预保留变量总结
2008/12/04 PHP
php Notice: Undefined index 错误提示解决方法
2010/08/29 PHP
fgetcvs在linux的问题
2012/01/15 PHP
php 模拟post_验证页面的返回状态(实例讲解)
2013/10/28 PHP
使用PHPExcel操作Excel用法实例分析
2015/03/26 PHP
PHP判断当前使用的是什么浏览器(推荐)
2019/10/27 PHP
asp.net+jquery滚动滚动条加载数据的下拉控件
2010/06/25 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
2014/12/17 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
2015/09/18 Javascript
javascript实现dom元素可拖动
2016/03/21 Javascript
Javascript使用SWFUpload进行多文件上传
2016/11/16 Javascript
浅谈键盘上回车按钮的js触发事件
2017/02/13 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
2017/04/10 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
LayUI数据接口返回实体封装的例子
2019/09/12 Javascript
vue-cli4.x创建企业级项目的方法步骤
2020/06/18 Javascript
原生小程序封装跑马灯效果
2020/10/21 Javascript
python实现猜数字游戏(无重复数字)示例分享
2014/03/29 Python
Python中关于使用模块的基础知识
2015/05/24 Python
python 数据的清理行为实例详解
2017/07/12 Python
Python遍历某目录下的所有文件夹与文件路径
2018/03/15 Python
Python 中如何实现参数化测试的方法示例
2019/12/10 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
手把手教你进行Python虚拟环境配置教程
2020/02/03 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
2020/11/17 Python
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
荷兰优雅女装网上商店:Heine
2016/11/14 全球购物
菲律宾票务网站:StubHub菲律宾
2018/04/21 全球购物
屈臣氏菲律宾官网:Watsons菲律宾
2020/06/30 全球购物
行政内勤岗位职责
2014/04/07 职场文书
关于环保的演讲稿
2014/05/10 职场文书
美术专业自荐信
2014/07/07 职场文书
人力资源管理专业求职信
2014/07/23 职场文书
自主招生学校推荐信范文
2015/03/26 职场文书
2016年质量月活动总结报告
2016/04/05 职场文书