output_buffering(output_buffering=4096)

http://www.itjxue.com  2023-02-09 21:16  来源:未知  点击次数: 

PHP里的output_buffering 怎么开启?

在PHP.INI可以设置以下与输出缓冲有关的:

名称 默认值 作用范围 修正记录

output_buffering "0" PHP_INI_PERDIR

output_handler NULL PHP_INI_PERDIR 自 PHP 4.0.4 起可用

implicit_flush "0" PHP_INI_ALL 在 PHP = 4.2.3 版本中是 PHP_INI_PERDIR

简单解释如下:

output_buffering boolean/integer

该选项设置为 On 时,将在所有的脚本中使用输出控制。如果要限制输出缓冲区的最大值,可将该选项设定为指定的最大字节数(例如 output_buffering=4096)。从PHP 4.3.5 版开始,该选项在 PHP-CLI 下总是为 Off。

output_handler string

该选项可将脚本所有的输出,重定向到一个函数。例如,将 output_handler 设置为 mb_output_handler() 时,字符的编码将被修改为指定的编码。设置的任何处理函数,将自动的处理输出缓冲。

注意: 不能同时使用 mb_output_handler() 和 ob_iconv_handler(),也不能同时使用 ob_gzhandler() 和 zlib.output_compression。

注意: 只有内置函数可以使用此指令。对于用户定义的函数,使用 ob_start()。

implicit_flush boolean

默认为 FALSE。如将该选项改为 TRUE,PHP 将使输出层,在每段信息块输出后,自动刷新。这等同于在每次使用 print()、echo() 等函数或每个 HTML 块之后,调用 PHP 中的 flush() 函数。

不在web环境中使用 PHP 时,打开这个选项对程序执行的性能有严重的影响,通常只推荐在调试时使用。在 CLI SAPI 的执行模式下,该标记默认为 TRUE。

参见 ob_implicit_flush()。

设置了肯定会有用的,除非你修改的PHP.INI位置不是系统使用的那个,比如一般是C::\WINDOWS\PHP.INI,当然可以设置到其它地方。另外控制台程序是不缓冲的。

另外,你还可以在程序里面控制输出缓冲,请参考手册里面的“CXIV. Output Control 输出控制函数”那一章,主要有如下函数:

flush -- 刷新输出缓冲

ob_clean -- Clean (erase) the output buffer

ob_end_clean -- Clean (erase) the output buffer and turn off output buffering

ob_end_flush -- Flush (send) the output buffer and turn off output buffering

ob_flush -- Flush (send) the output buffer

ob_get_clean -- Get current buffer contents and delete current output buffer

ob_get_contents -- Return the contents of the output buffer

ob_get_flush -- Flush the output buffer, return it as a string and turn off output buffering

ob_get_length -- Return the length of the output buffer

ob_get_level -- Return the nesting level of the output buffering mechanism

ob_get_status -- Get status of output buffers

ob_gzhandler -- ob_start callback function to gzip output buffer

ob_implicit_flush -- Turn implicit flush on/off

ob_list_handlers -- List all output handlers in use

ob_start -- Turn on output buffering

output_add_rewrite_var -- Add URL rewriter values

output_reset_rewrite_vars -- Reset URL rewriter values

例子程序:

?php

ob_start();

echo "Hello\n";

setcookie("cookiename", "cookiedata");

ob_end_flush();

?

帝国cms的后台管理员帐户被禁用不能登录了怎么办?

解决方法如下:

1、记录cookie是/e/class/connect.php文件中的一个函数,函数名称为esetcookie,先到这个函数内输出下setcookie这个函数能不能保存下浏览器的cookie内容,如果输出结构为false,就说明你的php环境没有开启这个函数的功能,找到php.ini配置文件,将output_buffering = of 改成output_buffering = 4096 然后重启下apache,就ok了。

2、文件编码问题,如果添加了用户自定义的函数usefun.php,该文件和你的版本文件格式不一样,设置下该文件的编码和你的版本文件格式一样即可解决问题,用editpuls等一些工具 文件另存为修改下编码即可。

3、cookie作用域问题,这种问题一般不会出现,如果是这种问题的话修改下/e/class/config.php这个文件,文件内的注释都是中文的,容易理解,找到设置cookie的地方设置下就可以了,分前台和后台的设置看清楚。

《帝国网站管理系统》英文译为"Empire CMS",简称"Ecms",它是基于B/S结构,且功能强大而帝国CMS-logo易用的网站管理系统。本系统由帝国开发工作组独立开发,是一个经过完善设计的适用于Linux/windows引/Unix等环境下高效的网站解决方案。从帝国新闻系统1.0版至今天的帝国网站管理系统,它的功能进行了数次飞跃性的革新,使得网站的架设与管理变得极其轻松。

JOOMLA在安装时候有个输出缓冲,如何禁用?我在HPH.INI 找到的output_bueffering后面是OFF

输出缓冲 output buffering 这个参数的确是由php.ini当中的一行

output_buffering = Off

命令来实现禁用的呢~

如果楼主发现改掉后未禁用,请重新启动apache

httpd -k restart

再试试刷新一下检测页面查看是否禁用成功?

如果仍然不行,根据之前的经验,请楼主搜索并修改下所有您硬盘中找到的php.ini文件再试试!

(责任编辑:IT教学网)

更多

相关CSS教程文章

推荐CSS教程文章