php生成静态页面

一,buffer

<?php
echo 1;

我们都运行程序浏览器访问,会显示1。
但是其实这中间会经历一个buffer,我们可以这样理解:这个1数据会先到php缓存区,当这个缓冲区满了之后,再传给客户端(浏览器)。
这个过程大致流程如下:

内容 -> php buffer -> tcp -> 终端(浏览器)

php.ini

output_buffering = on
#打开output缓冲,默认打开的。

output_buffering打开与关闭的区别:
1.打开了php输出缓存: echo,print -> php output_buffring -> server buffering -> browser buffering -> browser display
2.未打开php输出缓存: echo,print -> server buffering -> browser buffering -> browser display

我们在代码里获取缓存区内容:

<?php

echo 1;
echo "<hr/>";

// 获取php缓存区的内容
$buffer = ob_get_contents();
echo $buffer;

如果在php配置文件php.inioutput_buffering = on是开启的,那么上面代码在浏览器上会显示2个1和2条横线,查看网页源代码如下:

1<hr/>1<hr/>

如果php.ini中是关闭的,那么只会显示一次。

当然我们也可以在代码中,临时开启php缓冲区

<?php
ob_start(); // 开始php缓存,写在最前面

echo 1;
echo "<hr/>";

// 获取php缓存区的内容
$buffer = ob_get_contents();
echo $buffer;

评论

发表回复