K先生个人博客

当前位置:首页 > 爱技术 > 正文

一起来掌握PHP静态化技术

PHP静态化的好处就不多说了,一句话概括就是“让页面打开速度飞起来”。PHP静态化有纯静态和伪静态,伪静态其实严格来说并不是真正的“静态”,它只是伪装了自己,让它看起来像静态,它的实现是利用apache或者nginx服务器对url的重写,url看起来和静态的url看起来一样美观,但实际上它还是php。伪静态这里就不多介绍了。下面一张图先让你从宏观了解一下PHP静态化。

PHP静态化

纯静态 

开始之前,我们先了解一下PHP的ob函数。

ob_start();//开启缓冲区
ob_get_contents();//获取缓冲区内容
ob_clean(); //清除缓冲区内容

可以看到ob函数是关于缓冲区的,那么缓冲区是什么呢?缓存区也就是buffer,其实我们在执行PHP的时候,PHP会把相关的输出内容都先放到缓冲区,等到PHP函数完全执行结束,才会把缓存区内容输出到浏览器,也就是我们看到的内容。 

下面我们先通过一段简单的代码了解一下这个缓冲区

<?php
$name = 'K先生';
echo $name;
ob_clean();
echo ob_get_contents();

上面代码执行之后,你会发现什么输出都没有,那是因为ob_clean()函数将缓存区内容都清除了,尽管echo输出在ob_clean()之前。 

那么你现在把ob_clean()注释掉再试试,是不是能够正常输出了,并且输出了两个“K先生”,那是因为ob_get_contents()函数的存在哦。

最后需要注意的是,一般PHP默认是开启buffer缓存的,但为了确保万无一失,最好加上ob_start()先开启缓冲区。

一个小实例带你体验PHP静态化实现的过程 

首先我们先来创建一个模板文件moban.php

<!DOCTYPE html>
<html>
<head>
<title><?php echo $title; ?></title>
</head>
<body>
<p><?php echo $content; ?></p>
</body>
</html>

然后接着创建index.php文件

<?php
//用于填充模板的$title,$content变量一般可以从数据库中查找
$title = '这是一个标题';
$content = '欢迎你们来到K先生个人博客!';
require 'moban.php'; //把模板文件包含过来
$content = ob_get_contents(); //获取缓冲区内容
ob_clean(); //清除缓冲区,也就是不输出模板内容了
$res = file_put_contents('1.html', $content); //将获取到的缓冲区内容写到一个html文件中
if ($res != 0) {
	echo "生成静态文件成功";
} else {
	echo "生成静态文件失败,请检查源码";
}

运行index.php,你会发现生成了一个HTML文件(1.html),这就是全静态了。上面的注释应该很详细了,这就不多说了,

如果有问题,欢迎留言。你若问,我必答!

作者K先生本文地址http://www.gold404.cn/info/33

版权声明:本文为原创文章,版权归 K先生个人博客 所有,欢迎分享本文,转载请保留出处,谢谢!

文章评论

* 必填
可选
可选

评论列表