关于php.ini文件设置output=on 于系统默认设置output_buffering = 4096 的区别

来源:2-5 纯静态化案例实现

柒企鹅

2015-08-17 17:38

ob_start();

require_once('./templates/singwa.php');

file_put_contents('index.shtml',ob_get_clean());

//以上语句是可以将数据获取,并清除缓存,页面不会有任何输出

//但是,如果我不写 ob_start();  页面会将内容全部输出,那么意味着ob_get_clean()函数是没有生效?

//老师说的在ini文件中配置output=on之后,不是没有区别的吗?求解?

##之后我发现我的系统默认设置不是on而是4096,我修改为on之后,不添加ob_start();也不会输出了

//那么问题来了

php.ini文件设置output=on  与系统默认设置output_buffering = 4096 的区别

写回答 关注

2回答

  • 果皮
    2016-01-16 18:21:20

    output_buffering有3个值,on|off|正整数值,4096的意思就是默认开启一个4096Byte大小的缓冲区,而on会打开一个无限大的缓冲区。

    php 5.3+默认output_buffering = 4096,说明默认输出缓冲区是开启的,大小为4096,当输出缓冲区中的内容超过4096时候,它会溢出。所以我们在使用输出缓冲区的时候,都会手动去写一个ob_start(),让它开启一个无限大的输出缓冲区。

  • Hacker丶wand
    2016-01-16 18:12:51

    只有缓冲区达到4096字节时才会输出缓冲区的内容 也可以用ob_flush来强制输出

PHP实现页面静态化

网站开发必备技能—页面静态化,帮助大家掌握一项加薪利器

55615 学习 · 118 问题

查看课程

相似问题