利用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 相关文章推荐
模板引擎正则表达式调试小技巧
Jul 20 PHP
QQ登录 PHP OAuth示例代码
Jul 20 PHP
删除html标签得到纯文本可处理嵌套的标签
Apr 28 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
Jun 12 PHP
PHP的命令行命令使用指南
Aug 18 PHP
PHP类的封装与继承详解
Sep 29 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
May 11 PHP
PHP自定义函数格式化json数据示例
Sep 14 PHP
php查找字符串中第一个非0的位置截取
Feb 27 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
Apr 08 PHP
laravel 执行迁移回滚示例
Oct 23 PHP
windows系统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
php实现过滤UBB代码的类
2015/03/12 PHP
php实现面包屑导航例子分享
2015/12/19 PHP
php简单实现sql防注入的方法
2016/04/22 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
jQuery ajax(复习)—Baidu ajax request分离版
2013/01/24 Javascript
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
JS中for循序中延迟加载动态效果的具体实现
2013/08/18 Javascript
Javascript实现计算个人所得税
2015/05/10 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
2016/12/22 Javascript
jQuery点击弹出层弹出模态框点击模态框消失代码分享
2017/01/21 Javascript
JS变量及其作用域
2017/03/29 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
2018/09/03 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
2019/01/07 Javascript
详解TypeScript+Vue 插件 vue-class-component的使用总结
2019/02/18 Javascript
vue2.0中set添加属性后视图不能更新的解决办法
2019/02/22 Javascript
Vue CLI2升级至Vue CLI3的方法步骤
2019/05/20 Javascript
为react组件库添加typescript类型提示的方法
2020/06/15 Javascript
js简单粗暴的发布订阅示例代码
2021/01/23 Javascript
浅谈pyhton学习中出现的各种问题(新手必看)
2017/05/17 Python
pymysql模块的使用(增删改查)详解
2019/09/09 Python
使用python 计算百分位数实现数据分箱代码
2020/03/03 Python
Pandas之read_csv()读取文件跳过报错行的解决
2020/04/21 Python
50个强大璀璨的CSS3/JS技术运用实例
2010/02/27 HTML / CSS
使用css3实现超炫的loading加载动画效果
2014/05/07 HTML / CSS
anello泰国官方网站:日本流行包包品牌
2019/08/08 全球购物
大学生村官典型材料
2014/01/12 职场文书
优秀团员个人事迹材料
2014/01/29 职场文书
社区志愿者活动方案
2014/08/18 职场文书
后勤管理员岗位职责
2014/08/27 职场文书
检讨书1000字
2014/10/11 职场文书
2016年班主任培训心得体会
2016/01/07 职场文书
严以用权学习心得体会
2016/01/12 职场文书
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis