您的位置:首页 > 运维架构 > 网站架构

PHP网站页面静态化的生成方法介绍

2013-03-24 01:03 531 查看
在PHP网站开发中为了网站推广和SEO等需要,需要对网站进行全站或局部静态化处理,PHP生成静态HTML页面有多种方法,比如利用PHP模板、缓存等实现页面静态化,今天就以PHP实例教程形式讨论PHP生成静态页面的方法。

  什么是PHP静态化

  PHP静态化的简单理解就是使网站生成页面以静态HTML的形式展现在访客面前,PHP静态化分纯静态化和伪静态化,两者的区别在于PHP生成静态页面的处理机制不同。

  PHP伪静态教程:利用Apache mod_rewrite实现URL重写的方法

  PHP生成静态HTML页面的方法

  1、利用PHP模板生成静态页面

  PHP模板实现静态化非常方便,比如安装和使用PHP Smarty实现网站静态化。

  2、使用PHP文件读写功能生成静态页面

  PHP生成静态页面实例代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<?
$out1 =  "<html><head><title>PHP网站静态化教程</title></head><body>欢迎访问PHP网站开发教程网www.leapsoul.cn,本文主要介绍PHP网站页面静态化的方法</body></html>";

$fp = fopen("leapsoulcn.html","w");
if(!$fp)
{

    echo "System
Error";

    exit();
}
else
{

    fwrite($fp,$out1);

    fclose($fp);

    echo "Success";
}
?>
  3、使用PHP输出控制函数(Output Control)生成静态页面

  输出控制函数(Output Control)也就是使用和控制缓存来生成静态HTML页面,也会使用到PHP文件读写函数。

  PHP生成静态页面实例代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

<?
ob_start();

echo "<html>".

        "<head>".

        "<title>PHP网站静态化教程</title>".

        "</head>".

     "<body>欢迎访问PHP网站开发教程网www.leapsoul.cn,本文主要介绍PHP网站页面静态化的方法</body>".

     "</html>";

$out1 = ob_get_contents();

ob_end_clean();

$fp = fopen("leapsoulcn.html","w");
if(!$fp)
{

    echo "System
Error";

    exit();
}
else
{

    fwrite($fp,$out1);

    fclose($fp);

    echo "Success";
}
?>
  我们知道使用PHP进行网站开发,一般执行结果直接输出到游览器,为了使用PHP生成静态页面,就需要使用输出控制函数控制缓存区,以便获取缓存区的内容,然后再输出到静态HTML页面文件中以实现网站静态化。

  PHP生成静态页面的思路为:首先开启缓存,然后输出了HTML内容(你也可以通过include将HTML内容以文件形式包含进来),之后获取缓存中的内容,清空缓存后通过PHP文件读写函数将缓存内容写入到静态HTML页面文件中。PHP文件读写教程

  获得输出的缓存内容以生成静态HTML页面的过程需要使用三个函数:ob_start()、ob_get_contents()、ob_end_clean()。

知识点:

  1、ob_start函数一般主要是用来开启缓存,注意使用ob_start之前不能有任何输出,如空格、字符等。

  2、ob_get_contents函数主要用来获取缓存中的内容以字符串形式返回,注意此函数必须在ob_end_clean函数之前调用,否则获取不到缓存内容。

  3、ob_end_clean函数主要是清空缓存中的内容并关闭缓存,成功则返回True,失败则返回False

  PHP输出控制函数(Output Control)有很多应用,今后将陆续展开。

  至此,使用PHP生成静态HTML页面以实现网站静态化的方法就介绍完了,根据实际情况和需求你可以选择不同的静态化方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: