日期:2000 年 9 月 2 日星期六 21:43:02 GMT
:/1.3.11 (Unix)/1.1.1PHP/4.0.2-dev
X——由:PHP/4.0.2-dev
设置-:foo=bar
: 关闭
-类型:text/html
放 。
浏览器从服务器读取 HTTP 响应,并知道已发送一个名为 foo (在本例中为 )的变量,其值是 bar。
为什么要使用技术
早在 PHP/FI 2.0 中,技术需求就已显现。如果您使用过此版本的 PHP,您可能还记得经常遇到发送后出现“Oops, after has been sent”错误消息,让您摸不着头脑,不知道原因。
如果您使用过较新版本的 PHP(PHP 3.0 甚至 PHP 4.0),那么您就会知道此错误消息:哎呀,已发送后。或者,您在尝试调用 PHP 的 add() 函数时遇到了 add-sent 消息。通常,技术用户会避免使用这些烦人的错误消息,而开发人员会将其用于高级目的。
这些错误何时发生?如果您在 HTTP 发送后尝试添加或修改标头信息,并且文档主体和标头之间缺少空白行,则会产生这些错误消息。要了解这种情况是如何发生的,让我们看看 PHP 如何处理 HTTP 输出和主体输出。
信息(来自()或()函数)不会立即发送,而是保存到列表中。
这允许您修改标头信息,包括默认标头(例如 -Type 标头)。但是,一旦脚本发送任何非标头输出(例如,使用块或 print() 调用),PHP 必须先发送所有标头,然后发送一个空白行,终止 HTTP,然后继续处理正文数据。从此时起,不允许添加或修改标头信息的任何尝试,并将发送上述错误消息之一。
虽然这不会造成太大的问题,但有时它会在发送任何输入之前终止 HTTP,这会使脚本逻辑变得复杂。技术可以解决这些问题。
怎么运行的
启用后,当脚本发送输出时,PHP 不会发送 HTTP。相反,它会将此输出通过管道传输到动态增长的缓冲区(仅在具有集中输出机制的 PHP 4.0 中可用)。您仍然可以修改、添加标题行或设置它们,因为标题实际上并未发送。在最简单的情况下,当脚本终止时,PHP 会自动将 HTTP 发送到浏览器,然后发送输出缓冲区的内容。这很简单。
基本用法
有四个功能可以帮助您控制:
复制代码如下:
()
启用该机制。
支持多级别——例如,一个函数可以被调用多次。
()
发送(输出缓冲)并禁用该机制。
()
清除但不发送,并禁用。
()
将当前内容作为字符串返回。允许您处理脚本发出的任何输出。
另外,你可以在php.ini中启用该指令,如果启用了该指令,那么每个PHP脚本就相当于调用了开头的()函数。
1
复制代码如下:
1
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。