ob_get_level这个函数是做什么用的

爱着有你 2007-06-28 09:55:09
ob_get_level这个函数在PHP手册中的解释是这样的:

int ob_get_level ( void )
This will return the level of nested output buffering handlers or zero if output buffering is not activated.

问了几个人nested output buffering handlers ,是什么意思。回答是“递归输出缓存处理器”。

问ob_get_level是做什么的。回答:好像是输出缓存之类的。

有哪位大侠解释一下,PHP的缓存机制,nested output buffering handlers 的含义和机制。

ob_start()
ob_get_contents()

先谢过了。
...全文
1420 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
爱着有你 2007-07-02
  • 打赏
  • 举报
回复
做过
懒得去死 2007-07-02
  • 打赏
  • 举报
回复
你做过数组遍历没有
爱着有你 2007-07-02
  • 打赏
  • 举报
回复
楼上的兄弟谢了。这个是我们公司的框架里面在实现页面缓存时使用到的。代码就不便发了。抱谦了
爱着有你 2007-07-02
  • 打赏
  • 举报
回复
请高手指点。感激涕零
爱着有你 2007-07-02
  • 打赏
  • 举报
回复
问题提了出来其实大家的答案我一直没时间看。今天看了大家的答案,但是还没有解决我想要的东西。

如果说是类似于:
if()
{
if()
{
if()
{}
}
}
的这种。那么这样嵌套的缓存又有什么意义呢?

如果是类似于:
ob_start();
$a[] = ob_get_level();
ob_clean();

ob_start();
$a[] = ob_get_level();
ob_clean();

ob_start();
$a[] = ob_get_level();
ob_clean();
的缓存,那么又怎么称得上是‘嵌套’呢?
天降大任于斯 2007-07-01
  • 打赏
  • 举报
回复
仔细分析了下,又好像跟我上面讲的嵌套不一样!
我改了下上面那位兄弟的例子
<?php


ob_start();
$a[] = ob_get_level();
ob_clean();

ob_start();
$a[] = ob_get_level();
ob_clean();

ob_start();
$a[] = ob_get_level();
ob_clean();

ob_start();
$a[] = ob_get_level();
ob_clean();

ob_start();
$a[] = ob_get_level();
ob_clean();

ob_start();
$a[] = ob_get_level();
ob_clean();

echo implode("<br/>", $a);

?>

你运行下,就知道这个level跟ob_start()的关系了!
天降大任于斯 2007-07-01
  • 打赏
  • 举报
回复
这个应该就是嵌套的意思,嵌套不有个嵌套的层数么?
if()
{
if()
{
if()
{}
}
}
就嵌套了三层
不知道我说的对不对?你怎么会用到这个函数呢?
可以把你看到这个函数的应用的代码发到我邮箱么?
zjstandup@126.com
谢谢!
天降大任于斯 2007-07-01
  • 打赏
  • 举报
回复
根据 foolbirdflyfirst(湖水清澈) (@Fix my lover@) 给的例子,我的答案是:
在第几个ob_start()之后
比如他的例子有三个ob_start(),所以输出的结果是:
level:1,ouput:hello
level:2,ouput:world
level:3,ouput:hi

从手册上字面的理解就是:
得到输出缓存的第几层层数
helloyou0 2007-06-30
  • 打赏
  • 举报
回复
你是要解释output buffer还是要解释ob_get_level?
爱着有你 2007-06-29
  • 打赏
  • 举报
回复
还有别的更多的解释没有呀。看到我的帖子已经过时了,就上来再接着提了
foolbirdflyfirst 2007-06-28
  • 打赏
  • 举报
回复
jf
=============
ob_start();
echo 'hello';//此处并不会在页面中输出
$a = ob_get_level();
$b = ob_get_contents();//获得缓存结果,赋予变量
ob_clean();
ob_start();
echo 'world';//此处并不会在页面中输出
$c = ob_get_level();
$d = ob_get_contents();//获得缓存结果,赋予变量
ob_clean();
ob_start();
echo 'hi';//此处并不会在页面中输出
$e = ob_get_level();
$f = ob_get_contents();//获得缓存结果,赋予变量
ob_clean();

echo 'level:'.$a.',ouput:'.$b.'<br>';
echo 'level:'.$c.',ouput:'.$d.'<br>';
echo 'level:'.$e.',ouput:'.$f.'<br>';
yanxw_227 2007-06-28
  • 打赏
  • 举报
回复
顶一下,正好缓存这儿也不懂!
helloyou0 2007-06-28
  • 打赏
  • 举报
回复
nested 翻译成 “嵌套”就好理解了
helloyou0 2007-06-28
  • 打赏
  • 举报
回复
给你个例子就明白了

ob_start();
echo 'level1='.ob_get_level().'<br/>';
ob_start();
echo 'level2='.ob_get_level().'<br/>';
ob_start();
echo 'level3='.ob_get_level().'<br/>';

ob_end_flush();
ob_end_flush();
ob_end_flush();
ideal_1983 2007-06-28
  • 打赏
  • 举报
回复
不明白楼上所说的嵌套 是什么概念
爱着有你 2007-06-28
  • 打赏
  • 举报
回复
楼上能再讲得明白些吗?期待更好的答案。
懒得去死 2007-06-28
  • 打赏
  • 举报
回复
就像嵌入式一样。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧