ob缓冲是服务器向客户端响应数据时,存储响应数据的临时空间
服务器在向客户端推送数据之前,不是一次性把所有的数据都给客户端,而是先push到ob缓冲区域,再一点一点给客户端,减轻服务器的压力
1.1 开启ob缓冲
在php.ini配置文件中,找到output buferring
1.2 ob缓冲相关函数
ob_start() 开辟一块新的缓冲区域
只要ob_start()一次,就会在PHP的缓存中开辟一块缓冲区域
而且,服务器输出的内容会先输出到缓冲区域,再给客户端响应
ob_clean() 清空缓冲区域
ob_get_contents() 获取缓冲区域里面的内容
ob_get_length() 获取缓冲区域内容的长度
ob_flush() 将缓冲区域的内容直接刷出\输出
ob_get_flush() 获得缓冲区域刷出的内容
ob_clean():清空缓冲区域的内容
ob_get_clean():获得清空的缓冲区域的内容
1.3 ob缓冲处理器
ob缓冲处理器,就是在输出缓冲区域的内容之前,使用某个函数进行处理
通常我们会使用ob_gzhandler处理器进行压缩处理
1.4 ob多缓冲
我们可以在PHP里面开启多块缓冲区域,每ob_start()一次,就会在PHP里面创建一块缓冲区域,而且,将来ob_clean清空缓冲区域时,操作的是离开启缓冲最近那个缓冲区域
ob缓冲实现页面静态化
我们说过服务器响应给客户端的数据,会先输出到缓冲区域
服务器向客户端响应数据的方式:echo、var_dump、require、include
需求:查询商品列表,并生成静态化文件
解决方案:
先将require_once加载的模板内容,保存到缓冲区域,再读取并输出到静态html文件
思考:如何将遍历之后的结果保存到静态的html文件中呢?
思路:先拿到替换之后的结果(遍历之后的结果)
最后,检查goods.html模板文件即可