我知道那些与输出缓冲方法:ob_get_length()方法的用途是什么?
<?php
ob_start();
// some code
ob_end_flush();
ob_end_clean();
,但我想不出为什么将我需要的输出缓冲区的长度。这里有一个关于测量用户带宽的SOF问题,虽然这个计算需要测量未被解决的图片和其他文件。
我没有检查PHP手册和“为什么”不存在。
我知道那些与输出缓冲方法:ob_get_length()方法的用途是什么?
<?php
ob_start();
// some code
ob_end_flush();
ob_end_clean();
,但我想不出为什么将我需要的输出缓冲区的长度。这里有一个关于测量用户带宽的SOF问题,虽然这个计算需要测量未被解决的图片和其他文件。
我没有检查PHP手册和“为什么”不存在。
回答“为什么要使用它”。为了回答这个问题,我们必须首先明白为什么我们需要使用ob_start
。 通常它被用于两个目的:
echo
例如,在header
之前,后者将不起作用)echo
或print
写入,通常他们outputing只有很小的数据,所以你要发送的数据的一小部分返回到浏览器,这是影响性能。)可以开始猜测,为什么我们需要使用ob_get_length()
。例如:我想发送我的输出大块,所以我启用输出缓冲,并在ob_get_length
的帮助下,我可以控制多少数据我可以写入缓冲区,然后再发送它。
ob_get_length
将返回的输出缓冲区中的内容的长度..
下面是简单的例子..
<?php
ob_start();
echo "Hello ";
$len1 = ob_get_length();
echo "World";
$len2 = ob_get_length();
ob_end_clean();
echo $len1 . ", ." . $len2;
?>
上面的示例将输出:6, 11
更新: 如果你想发送一个自定义的HTTP Content-Length头部,ob_get_length()会很有帮助 - 尽管这只适用于高级用户!
问题是:为什么我需要这个信息? – docesam
如果你想发送一个自定义的HTTP Content-Length头,ob_get_length()会很有帮助 - 尽管这只适用于高级用户! –
伟大的答案谢谢 – docesam