PHP下对缓冲区的控制
PHP4.0 提供了一个输出缓冲函数集合。输出缓冲支持允许你写包裹函数功能压缩缓冲区。在 PHP4 的输出缓冲支持允许 HTML 头信息存放, 无论 HTML的正文是否输出。但在PHP中,头信息( (header(), content type, and cookies )不采用缓冲 。
在使用PHP的过程中不免要使用到header和
函数名称 函数格式 功能 说明
Flush flush() 输出缓冲区内的内容并且删除缓冲区。 这个函数经常使用,效率很高。
ob_start void ob_start(void) 打开输出缓冲区。 当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或者使用ob_end_clean()来输出缓冲区的内容。
ob_get_contents string ob_get_contents(void) 返回内部缓冲区的内容。 这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回 FALSE 。
ob_get_length int ob_get_length(void) 返回内部缓冲区的长度。 这个函数会返回当前缓冲区中的长度;和ob_get_contents一样,如果输出缓冲区没有激活。则返回 FALSE。
ob_end_flush void ob_end_flush(void) 发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区。 这个函数发送输出缓冲区的内容(如果有的话)。
ob_end_clean void ob_end_clean(void) 删除内部缓冲区的内容,并且关闭内部缓冲区。 这个函数不会输出内部缓冲区的内容!
ob_implicit_flush void ob_implicit_flush ([int flag]) 打开或关闭绝对刷新 使用过Perl的人都知道$|=x的意义,这个字符串可以打开/关闭缓冲区,而ob_implicit_flush函数也和那个一样,默认为关闭缓冲区,打开绝对输出。
二、实例分析:
1、用缓冲区控制的函数防止文件头发送信息出错。
//PHP提示符
ob_start(); //打开缓冲区
echo "Welcome /n"; //输出
header("location:next.php"); //把浏览器重定向到next.php
?>
如果去掉ob_start,PHP就会提示在文件的第4行出错,出错信息为“Header had all ready send by”,但是加上ob_start,就不会提示出错,原因是当打开了缓冲区,echo后面的字符不会输出到浏览器,而是保留在服务器的缓冲区中,直到你使用flush或者ob_end_flush才会输出,所以并不会出现文件头已输出的错误!
2、保存输出(这是一个很经典的用途)。
假如你想知道客户端的屏幕输出信息像函数的输出结果等,而且这个输出信息会因客户端的不同而不同。我们可以用函数 phpinfo(); ?> 得到服务器的设置信息,但是如果想要保存phpinfo()函数的输出怎么办呢?在没有缓冲区控制之前,可以说一点办法也没有,但是有了缓冲区的控制,我们可以轻松的解决。
ob_start(); //打开缓冲区
phpinfo(); //使用phpinfo函数
$info=ob_get_contents(); //得到缓冲区的内容并且赋值给$info
$file=fopen('phpinfo.txt','w'); //打开文件phpinfo.txt
fwrite($file,$info); //写入信息到phpinfo.txt
fclose($file); //关闭文件phpinfo.txt
?>
用以上的方法,就可以把不同用户的phpinfo信息保存下来,这在以前恐怕没有办法办到!同样,用缓冲区的方法可以保存一般方法难以完成的任务,这其实上就是将一些“过程”转化为“函数”的方法。

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

In this chapter, we will understand the Environment Variables, General Configuration, Database Configuration and Email Configuration in CakePHP.

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

To work on file upload we are going to use the form helper. Here, is an example for file upload.

In this chapter, we are going to learn the following topics related to routing ?

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

Validator can be created by adding the following two lines in the controller.
