利用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下判断数组中是否存在相同的值array_unique
Mar 25 PHP
怎样去阅读一份php源代码
Aug 21 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
Oct 29 PHP
PHP_Cooikes不同页面无法传递的解决方法
Mar 07 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 PHP
php基于curl重写file_get_contents函数实例
Nov 08 PHP
php基于curl实现的股票信息查询类实例
Nov 11 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
May 24 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
May 08 PHP
解决laravel资源加载路径设置的问题
Oct 14 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 PHP
swoole锁的机制代码实例讲解
Mar 04 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
在Windows中安装Apache2和PHP4的权威指南
2006/10/09 PHP
php横向重复区域显示二法
2008/09/25 PHP
基于php在各种web服务器的运行模式详解
2013/06/03 PHP
ini_set的用法介绍
2014/01/07 PHP
PHP下的浮点运算不准的解决方法
2016/10/27 PHP
一个简单的js动画效果代码
2010/07/20 Javascript
JS焦点图切换,上下翻转
2011/05/12 Javascript
Javascript 数组排序详解
2014/10/22 Javascript
使用JS获取当前地理位置方法汇总
2014/12/18 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
2015/01/13 Javascript
javascript中sort()的用法实例分析
2015/01/30 Javascript
JS实现黑色风格的网页TAB选项卡效果代码
2015/10/09 Javascript
JavaScript子窗口调用父窗口变量和函数的方法
2015/10/09 Javascript
JavaScript中的原始值和复杂值
2016/01/07 Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
2018/02/28 Javascript
vue data有值,但是页面{{}} 取不到值的解决
2020/11/09 Javascript
TensorFlow在MAC环境下的安装及环境搭建
2017/11/14 Python
anaconda如何查看并管理python环境
2019/07/05 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
HTML5 解决苹果手机不能自动播放音乐问题
2017/12/27 HTML / CSS
你的自行车健身专家:FaFit24
2016/11/16 全球购物
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
Gloeilampgoedkoop荷兰:在线购买灯泡
2019/02/16 全球购物
启动一个线程是用run()还是start()
2016/12/25 面试题
高中生的学习总结自我鉴定
2013/10/26 职场文书
共产党员承诺书
2014/03/25 职场文书
帮一个朋友写的求职信
2014/08/09 职场文书
幼儿园六一儿童节活动方案
2014/08/26 职场文书
个人遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
单位租车协议书
2015/01/29 职场文书
教师求职自荐信范文
2015/03/04 职场文书
开展警示教育活动总结
2015/05/09 职场文书
python基础之文件处理知识总结
2021/05/23 Python
Python中如何处理常见报错
2022/01/18 Python