利用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 相关文章推荐
Apache2 httpd.conf 中文版
Dec 06 PHP
php 设计模式之 工厂模式
Dec 19 PHP
php 调试利器debug_print_backtrace()
Jul 23 PHP
php调用dll的实例操作动画与代码分享
Aug 14 PHP
php实现粘贴截图并完成上传功能
May 17 PHP
PHP代码实现表单数据验证类
Jul 28 PHP
Laravel学习教程之request validation的编写
Oct 25 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 PHP
PHP PDOStatement::fetchColumn讲解
Jan 31 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
Jun 12 PHP
php传值和传引用的区别点总结
Nov 19 PHP
YII2 全局异常处理深入讲解
Mar 24 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 线程安全与非线程安全版本的区别深入解析
2013/08/06 PHP
通过dbi使用perl连接mysql数据库的方法
2014/04/16 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
JavaScript高级程序设计
2006/12/29 Javascript
jQuery Form 页面表单提交的小例子
2013/11/15 Javascript
利用js(jquery)操作Cookie的方法说明
2013/12/19 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
全面解析标签页的切换方式
2016/08/21 Javascript
NodeJS 实现手机短信验证模块阿里大于功能
2017/06/19 NodeJs
jQuery简单实现向列表动态添加新元素的方法示例
2017/12/25 jQuery
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
html中创建并调用vue组件的几种方法汇总
2020/11/17 Javascript
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
[46:16]2018DOTA2亚洲邀请赛3月30日 小组赛B组 iG VS VP
2018/03/31 DOTA
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2014/02/24 Python
简单介绍Python中的len()函数的使用
2015/04/07 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
Python IDLE清空窗口的实例
2018/06/25 Python
Python骚操作之动态定义函数
2019/03/26 Python
详解如何用TensorFlow训练和识别/分类自定义图片
2019/08/05 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
2019/08/20 Python
python 如何对logging日志封装
2020/12/02 Python
python dir函数快速掌握用法技巧
2020/12/09 Python
详解CSS3浏览器兼容
2016/12/14 HTML / CSS
加利福尼亚州威尼斯的女性奢侈品设计师服装和概念店:Mona Moore
2018/09/13 全球购物
精选鞋类、服装和配饰的全球领先目的地:Bodega
2021/02/27 全球购物
Java如何读取CLOB字段
2013/10/10 面试题
学生会竞选自荐信
2013/10/12 职场文书
《大禹治水》教学反思
2014/04/27 职场文书
护理专业求职信
2014/06/15 职场文书
横幅标语大全
2014/06/17 职场文书
就业推荐表自我评价范文
2015/03/02 职场文书
2015年教师节感恩寄语
2015/03/23 职场文书
护士旷工检讨书
2015/08/15 职场文书
Windows 11要来了?微软文档揭示Win11太阳谷 / Win10有两个不同版本
2021/11/21 数码科技