php输出控制函数和输出函数生成静态页面
Output Control 函数详解:
flush- 刷新输出缓冲ob_clean- 清空输出缓冲区ob_end_clean- 清空缓冲区并关闭输出缓冲ob_end_flush- 冲刷出输出缓冲区内容并关闭缓冲ob_flush- 冲刷出输出缓冲区中的内容ob_get_clean- 得到当前缓冲区的内容并删除当前输出缓存ob_get_contents- 返回输出缓冲区的内容ob_get_flush- 刷出缓冲区内容, 以字符串形式返回内容, 并关闭输出缓冲区ob_get_length- 返回输出缓冲区内容的长度ob_get_level- 返回输出缓冲机制的嵌套级别ob_get_status- 得到所有输出缓冲区的状态ob_gzhangdler- 在ob_start中使用的用来压缩输出缓冲区中内容的回调函数ob_implicit_flush- 打开/关闭绝对刷送ob_list_handlers- 列出所有使用中的输出处理程序ob_start- 打开输出控制缓冲output_add_rewrite_var- 添加URL重写器的值output_reset_rewrite_vars- 重设URL重写器的值
常用的输出控制函数说明:
ob_start
此函数将打开输出缓冲。当输出缓冲激活后,脚本将不会输出内容(除http标头外),相反需要输出的内容被存储在内部缓冲区中。
内部缓冲区的内容可以用 ob_get_contents() 函数复制到一个字符串变量中.
想要输出存储在内部缓冲区中的内容, 可以使用 ob_end_flush() 函数。另外, 使用 ob_end_clean() 函数会静默丢弃掉缓冲区的内容。
输出缓冲区是可堆叠的,这即意谓着,当有一个 ob_start() 是活跃的时, 你可以调用另一个 ob_start() 。
只要确保正确调用了 ob_end_flush() 恰当的次数即可。 如果有多重输出回调函数是活跃的,输出内容会一直按嵌套的顺序依次通过它们而被过滤。
flush
刷新PHP程序的缓冲,该函数将当前为止程序的所有输出发送到用户的浏览器。
flush() 函数不会对服务器或客户端浏览器的缓存模式产生影响。
因此,必须同时使用 ob_flush() 和 flush() 函数来刷新输出缓冲。
ob_flush
冲刷出输出缓冲区中的内容
输出缓冲区中的内容,如果想进一步处理缓冲区中的内容,必须在ob_flush()之前调用ob_get_contents() ,
因为在调用ob_flush()之后缓冲区内容将被丢弃,而缓冲区不会被销毁。
ob_end_flush
输出缓冲区内容,并关闭输出缓冲区。
ob_get_flush
输出缓冲区内容(以字符串形式返回),并关闭输出缓冲区,与
ob_end_flush()不同的是本函数还会以字符串形式返回缓冲区内容。
ob_clean
清空输出缓冲区, 此函数用来丢弃输出缓冲区的内容
此函数不会像
ob_end_clean()函数那样销毁输出缓冲区。输出缓冲必须已被
ob_start()以PHP_OUTPUT_HANDLER_CLEANABLE标记启动。否则ob_clean()不会有效果。
ob_end_clean
清空输出缓冲区并关闭输出缓冲区; 此函数丢弃最顶层输出缓冲区的内容并关闭这个缓冲区
ob_get_clean
得到当前缓冲区的内容并删除当前输出缓存
返回输出缓冲区的内容,并结束输出缓冲区。如果输出缓冲区不是活跃的,即返回
FALSE。
ob_get_conents
获取缓冲区的内容
ob_get_length
获取缓冲区内容的长度
ob_get_level
获取缓冲机制的嵌套级别
ob_get_status
得到所有输出缓冲区的状态
输出函数生成静态页面示例demo:
<?php
//打开输出控制缓存
ob_start();
echo "<html><head><title>test页面</title></head><body>Hello world</body></html>";
//获取缓冲区的内容
$out = ob_get_contents();
//关闭输出缓存
ob_end_clean();
//打开test.html文件开启写入权限
$fp = fopen("test.html", "w");
if (!$fp) {
echo "Fail";die;
} else {
//写入文件
fwrite($fp, $out);
//关闭文件
fclose($fp);
echo "Success";
}
输出结果:Success 同时输出一个静态页面如下图

php输出控制函数和输出函数生成静态页面的更多相关文章
- js引入php 用来加载静态页面 输出到页面中
HTML页面中加入代码 <script type="text/javascript" src="http://www.域名.com/js.php?id=tjyd&q ...
- PHP输出控制函数(ob系列函数)
PHP输出控制函数(ob系列函数) flush — 刷新输出缓冲ob_clean — 清空(擦掉)输出缓冲区ob_end_clean — 清空(擦除)缓冲区并关闭输出缓冲ob_end_flush — ...
- 浅谈php生成静态页面
一.引 言 在速度上,静态页面要比动态页面的比方php快很多,这是毫无疑问的,但是由于静态页面的灵活性较差,如果不借助数据库或其他的设备保存相关信息的话,整体的管理上比较繁琐,比方修改编辑.比方阅读权 ...
- PHP生成静态页面的方法
在PHP网站开发中为了网站推广和SEO等需要,需要对网站进行全站或局部静态化处理,PHP生成静态HTML页面有多种方法,比如利用PHP模板.缓存 等实现页面静态化,今天就以PHP实例教程形 ...
- .NET生成静态页面并分页
因为公司的产品用asp开发, 前一段时间用asp写了一个生成静态页面并分页的程序,但缘于对.net的热爱,写了这个.net下的生成静态页面并分页的程序. 主要的原理就是替换模板里的特殊字符. 1.静态 ...
- .net 生成 静态页面
.net 生成 静态页面 <!--Main.Aspx--> <%@ page language="C#" %> <%@ import namespac ...
- 比较详细PHP生成静态页面教程
一,PHP脚本与动态页面. PHP脚本是一种服务器端脚本程序,可通过嵌入等方法与HTML文件混合, 也可以类,函数封装等形式,以模板的方式对用户请求进行处理.无论以何种方式,它的基本原理是这样的.由客 ...
- .NET生成静态页面的方案总结
转载自:http://www.cnblogs.com/cuihongyu3503319/archive/2012/12/06/2804233.html 方法一:在服务器上指定aspx网页,生成html ...
- [转]把动态页面.aspx 生成静态页面.html
本文转自:http://blog.csdn.net/csb5201314/article/details/5391688 如果要把主页Index.aspx 生成静态页面 Index.html后输出会提 ...
随机推荐
- json 格式
Json格式规则:(Douglas Crockford提出的) 1) 并列的数据之间用逗号(“,”)分隔. 2) 映射用冒号(“:”)表示. 3) 并列数据的集合(数组)用方括号("[]&q ...
- linux下安装nginx(nginx(nginx-1.8.0.tar.gz),openssl(openssl-fips-2.0.9.tar.gz) ,zlib(zlib-1.2.11.tar.gz),pcre(pcre-8.39.tar.gz))
:要按顺序安装: 1:先检查是否安装 gcc ,没有先安装:通过yum install gcc-c++完成安 2:openssl : tar -zxf openssl-fips-2.0.9.tar. ...
- 工具 - VNC
安装 ubuntu下vnc客户端的安装命令sudo apt-get install xtightvncviewer 重置密码 cd /root/.vnc/ rm -rf passwd vncserve ...
- DevOps的前世今生
From今日头条:https://www.toutiao.com/a6534660729453150723/?tt_from=weixin&utm_campaign=client_share& ...
- IDEA常用快揵键
IDEA常用快揵键 工作中常用IDEA快捷键 参见博客:https://www.cnblogs.com/zhangpengshou/p/5366413.html Double shift --- ...
- MYSQL实战-1.mysql基本架构
1.mysql可分为server层和存储引擎 1.1 server层: 连接器.查询缓存.分析器.优化器 .执行器.包含所有内置函数(日期,时间,数学.加密函数),所有跨存储引擎的功能都在此层,比如存 ...
- Sql Server主副本和辅助副本间账号同步以及权限同步
问题描述 SqlServer如果配置了AlwaysOn,其数据库账号信息同步会出现问题. 我遇到的情况是在主副本添加了账号信息,且给某个数据库添加了权限,这个账号会同步至辅助副本,但是数据库角色信息没 ...
- Java中数据类型的分类
我们知道Java是强类型语言,那么肯定对应的也就有弱类型语言,以下介绍强类型语言与弱类型语言的区别: 强类型语言: 强类型语言也就是强制数据类型定义的语言.也就是说,一旦一个变量被指定了某个数据类型, ...
- F. Fixing Banners
http://codeforces.com/gym/102394/problem/F F. Fixing Banners time limit per test 1 second memory lim ...
- 最全的 Java 知识总结- Github 日增 10 star
项目地址: 如果觉得有帮助,希望大家给个 star 鼓励以下:同时也希望大家多多 fork,一起加入进来. 为什么选择做这个开源项目 首先,希望提高自己:因为选择做这个,自己肯定就会花时间去提高自己的 ...