利用PHP生成静态html页面的原理

 更新时间:2016年09月30日 10:08:36   作者:我爱一碗香  
现在很多网站系统,如dedecms、phpcms、帝国等知名内容管理系统都提供生成静态页面的功能,这不光有利于搜索引擎的抓取,而且还能有效降低服务器压力。对于学习PHP,将要从事WEB网站开发的朋友们来说,了解这个功能是必须的,下面来分享一下PHP生成静态页面的原理。

前言

如果每次用户点击动态链接的时候都会对服务器发送数据查询的要求,对于一个访问量可能达百万千万级别的网站来说 这无疑是服务器一个大大的负担,所以把动态数据转换成静态html页面就成了节省人力物力的首选因为此前没有相应的经验,所以这篇文章和大家分享利用PHP生成静态html页面的原理和方法,有需要的可以一起来看看。

一、思路分析

其实,实现静态页面生成功能的原理很简单,主要利用几个常见的PHP文件操作函数对文件进行操作,其思路流程如下:


生成静态页面流程图

二、功能实现

设置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内部实现打乱字符串顺序函数str_shuffle的方法

    PHP内部实现打乱字符串顺序函数str_shuffle的方法

    这篇文章主要给大家介绍了关于PHP内部实现打乱字符串顺序函数str_shuffle的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • PHP垃圾回收机制引用计数器概念分析

    PHP垃圾回收机制引用计数器概念分析

    php变量存在一个叫"zval"的变量容器中,"zval"变量容器包括含变量的类型和值,还包括额外的两个字节信息,分别是“is_ref”表示变量是否属于引用,“refcount”指向这个zval变量容器的变量个数
    2013-06-06
  • php实现阳历阴历互转的方法

    php实现阳历阴历互转的方法

    这篇文章主要介绍了php实现阳历阴历互转的方法,同时还能获取干支纪年,生肖,以及相应的阴历的中文叫法等,感兴趣的小伙伴们可以参考一下
    2015-10-10
  • 使用JSON实现数据的跨域传输的php代码

    使用JSON实现数据的跨域传输的php代码

    某网站后台用php脚本得到一个JSON格式的数据,交给前台javascript进行处理,使用JSON实现数据的跨域调用
    2011-12-12
  • php需登录的文件上传管理系统

    php需登录的文件上传管理系统

    这篇文章主要介绍了php需登录的文件上传管理系统,文章中跟大家分享了一个很完整的php代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-10-10
  • PHP随机数生成代码与使用实例分析

    PHP随机数生成代码与使用实例分析

    在PHP程序设计中,随机数的生成尤为重要。我们需要用随机数在我们的页面中展示随机记录(比如图片、用户记录、文章ID等)。
    2011-04-04
  • php操作mongodb封装类与用法实例

    php操作mongodb封装类与用法实例

    这篇文章主要介绍了php操作mongodb封装类与用法,结合具体实例形式分析了php定义的MongoDB操作封装类与相关的类实例化、查询、更新等使用技巧,需要的朋友可以参考下
    2018-09-09
  • phpQuery采集网页实现代码实例

    phpQuery采集网页实现代码实例

    这篇文章主要介绍了phpQuery采集网页实现代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • PHP实现判断二叉树是否对称的方法

    PHP实现判断二叉树是否对称的方法

    这篇文章主要介绍了PHP实现判断二叉树是否对称的方法,涉及php递归二叉树判断节点的相关操作技巧,需要的朋友可以参考下
    2018-01-01

最新评论