页面静态化的技术实现的两种方式:
1、使用php自己的缓存机制 ob
ob未打开时,php代码执行,代码执行完毕之前,依次输出到程序缓存中,包含头信息,头信息不一定在最前面,如果在当中会报错,代码执行完毕,由程序缓存移交至浏览器缓存,浏览器显示输出(浏览器先检查头信息,再是内容)
ob打开时,php代码执行,代码执行完毕之前,头信息放到程序缓存中,其他信息放到ob缓存中,等代码执行完,把ob缓存中的内容刷新到程序缓存中,然后输出到浏览器缓存中实现输出,此时header信息是在最上面的,不会出错
打开ob缓存:
1、配置中output_buffering = 4096 2、程序中ob_start();(开启ob缓存)
ob使用函数
ob_get_contents() 获取ob缓存的数据,只是得到输出缓冲区的内容,但不清除它
ob_clean() 清除ob缓存区中的数据
ob_end_clean() 清除ob缓存区中的数据并关闭ob缓存服务
ob_get_clean() 获取ob缓存的数据并关闭ob缓存服务
ob_end_flush() 把ob缓存中数据刷新到程序缓存中并关闭ob缓存服务
ob_flush() 把ob缓存中数据刷新到程序缓存中并清空ob缓存中的数据
flush() 把程序缓存中的数据强制刷新到浏览器缓存中,并清空程序缓存中的数据
有些浏览器必须超过1024个字符,才会页面显示
2、使用模板替换技术实现(正则表达式)