利用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 相关文章推荐
PHP5/ZendEngine2的改进
Oct 09 PHP
一个目录遍历函数
Oct 09 PHP
PHP实现MVC开发得最简单的方法――模型
Apr 10 PHP
PHP 服务器配置(使用Apache及IIS两种方法)
Jun 01 PHP
php+javascript的日历控件
Nov 19 PHP
PHP警告Cannot use a scalar value as an array的解决方法
Jan 11 PHP
深入for,while,foreach遍历时间比较的详解
Jun 08 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
PHP伪静态Rewrite设置之APACHE篇
Jul 30 PHP
[原创]php实现子字符串位置相互对调互换的方法
Jun 02 PHP
PHP删除数组中指定下标的元素方法
Feb 03 PHP
CodeIgniter框架数据库基本操作示例
May 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
使用phpstorm和xdebug实现远程调试的方法
2015/12/29 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
2016/03/23 PHP
PHP中类的继承和用法实例分析
2016/05/24 PHP
php类的自动加载操作实例详解
2016/09/28 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
CMSPRESS 10行代码搞定 PHP无限级分类2
2018/03/30 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
jquery获取input表单值的代码
2010/04/19 Javascript
关于javascript DOM事件模型的两件事
2010/07/22 Javascript
原生js做的手风琴效果的导航菜单
2013/11/08 Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
2015/10/09 Javascript
使用node+vue.js实现SPA应用
2016/01/28 Javascript
Nodejs中session的简单使用及通过session实现身份验证的方法
2016/02/04 NodeJs
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
2016/05/27 Javascript
js控制div层的叠加简单方法
2016/10/15 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
2016/12/26 Javascript
jQuery模拟淘宝购物车功能
2017/02/27 Javascript
Extjs表单输入框异步校验的插件实现方法
2017/03/20 Javascript
详解vue项目首页加载速度优化
2017/10/18 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
2018/10/12 Javascript
vue-loader中引入模板预处理器的实现
2019/09/04 Javascript
Vue实现push数组并删除的例子
2019/11/01 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
JS 遍历 json 和 JQuery 遍历json操作完整示例
2019/11/11 jQuery
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
Kears+Opencv实现简单人脸识别
2019/08/28 Python
Pandas DataFrame中的tuple元素遍历的实现
2019/10/23 Python
Python实现微信好友的数据分析
2019/12/16 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
2020/06/02 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
python3中确保枚举值代码分析
2020/12/02 Python
最受欢迎的自我评价
2013/12/22 职场文书
打造完美自荐信
2014/01/24 职场文书
竞聘演讲稿开场白
2014/08/25 职场文书
校园安全主题班会
2015/08/12 职场文书
《英雄联盟》2022日蚀、月蚀皮肤演示 黑潮亚索曝光
2022/04/13 其他游戏