利用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
php下通过curl抓取yahoo boss 搜索结果的实现代码
Jun 10 PHP
php中实现简单的ACL 完结篇
Sep 07 PHP
php setcookie(name, value, expires, path, domain, secure) 参数详解
Jun 28 PHP
百度站点地图(百度sitemap)生成方法分享
Jan 09 PHP
zf框架的zend_cache缓存使用方法(zend框架)
Mar 14 PHP
php读取富文本的时p标签会出现红线是怎么回事
May 13 PHP
ThinkPHP CURD方法之data方法详解
Jun 18 PHP
php 问卷调查结果统计
Oct 08 PHP
CodeIgniter配置之autoload.php自动加载用法分析
Jan 20 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
May 21 PHP
PHP 图片合成、仿微信群头像的方法示例
Oct 25 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
资料注册后发信小技巧
2006/10/09 PHP
PHP生成月历代码
2007/06/14 PHP
Yii分页用法实例详解
2014/12/04 PHP
PHP使用curl函数发送Post请求的注意事项
2016/11/26 PHP
PHP查询分页的实现代码
2017/06/09 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
PHP封装curl的调用接口及常用函数详解
2018/05/31 PHP
javascript 学习之旅 (1)
2009/02/05 Javascript
jQuery下实现等待指定元素加载完毕(可改成纯js版)
2013/07/11 Javascript
jquery超简单实现手风琴效果的方法
2015/06/05 Javascript
jquery实现表单验证简单实例演示
2015/11/23 Javascript
你不知道的高性能JAVASCRIPT
2016/01/18 Javascript
jQuery中Chosen三级联动功能实例代码
2017/03/07 Javascript
nodejs中使用HTTP分块响应和定时器示例代码
2017/03/19 NodeJs
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
利用Three.js如何实现阴影效果实例代码
2017/09/26 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
2019/09/20 Javascript
[28:05]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第一场 10月30日
2020/10/31 DOTA
python求列表交集的方法汇总
2014/11/10 Python
详解Django缓存处理中Vary头部的使用
2015/07/24 Python
OpenCV实现人脸识别
2017/04/07 Python
Python实现的三层BP神经网络算法示例
2018/02/07 Python
简单了解django缓存方式及配置
2019/07/19 Python
python3实现往mysql中插入datetime类型的数据
2020/03/02 Python
HTML5中原生的右键菜单创建方法
2016/06/28 HTML / CSS
应届毕业生的自我鉴定
2013/11/13 职场文书
工作会议欢迎词
2014/01/16 职场文书
经典广告词大全
2014/03/14 职场文书
伊琍体标语
2014/06/25 职场文书
群教班子对照检查材料
2014/08/26 职场文书
学习心理学的体会
2014/11/07 职场文书
2014年医药代表工作总结
2014/11/22 职场文书
世界遗产导游词
2015/02/13 职场文书
水浒传读书笔记
2015/06/25 职场文书
初中军训感想
2015/08/07 职场文书
如何才能写好调研报告?
2019/07/03 职场文书