利用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中的integer类型使用分析
Jul 27 PHP
php中通过curl模拟登陆discuz论坛的实现代码
Feb 16 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
Oct 05 PHP
利用curl抓取远程页面内容的示例代码
Jul 23 PHP
php检测用户是否用手机(Mobile)访问网站的类
Jan 09 PHP
php删除数组元素示例分享
Feb 17 PHP
php实现递归抓取网页类实例
Apr 03 PHP
php验证码实现代码(3种)
Sep 07 PHP
一波PHP中cURL库的常见用法代码示例
May 06 PHP
PHP中常用的数组操作方法笔记整理
May 16 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
May 24 PHP
PHP addslashes()函数讲解
Feb 03 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
与空气斗智斗勇的经典《Overlord》,传说中的“无稽之谈”
2020/04/09 日漫
php中函数前加&amp;符号的作用分解
2014/07/08 PHP
php中adodbzip类实例
2014/12/08 PHP
WAMP环境中扩展oracle函数库(oci)
2015/06/26 PHP
php+js实现百度地图多点标注的方法
2016/11/30 PHP
PHP explode()函数用法讲解
2019/02/15 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
2010/10/01 Javascript
读jQuery之二(两种扩展)
2011/06/11 Javascript
JQquery的一些使用心得分享
2012/08/01 Javascript
Jquery解析json数据详解
2013/12/26 Javascript
JavaScript制作的可折叠弹出式菜单示例
2014/04/04 Javascript
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
js拆分字符串并将分割的数据放到数组中的方法
2015/05/06 Javascript
JS实现超精简响应鼠标显示二级菜单代码
2015/09/12 Javascript
Bootstrap每天必学之按钮
2015/11/26 Javascript
让你一句话理解闭包(简单易懂)
2016/06/03 Javascript
JS构造函数与原型prototype的区别介绍
2016/07/04 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
详解基于angular-cli配置代理解决跨域请求问题
2017/07/05 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
vue.js 实现点击按钮动态添加li的方法
2018/09/07 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
2019/04/04 Javascript
Vue实现根据hash高亮选项卡
2019/05/27 Javascript
layer ui插件显示tips时,修改字体颜色的实现方法
2019/09/11 Javascript
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
Python3爬虫中Selenium的用法详解
2020/07/10 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
会计学财务管理专业个人的自我评价
2013/10/19 职场文书
服装创业计划书范文
2014/02/05 职场文书
2014大学生全国两会学习心得体会
2014/03/13 职场文书
青年岗位能手事迹材料
2014/12/23 职场文书
员工手册编写范本
2015/05/14 职场文书
JavaScript中isPrototypeOf函数
2021/11/07 Javascript
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
2022/04/29 Servers