1

我正在处理其他人的代码,并且有大约 800 行标记与标签混合在一起。我正在尝试将一些模板应用于这些页面,我想我会首先捕获输出缓冲区中的所有输出,将其作为变量返回,然后逐个整理。

问题是在缓冲区的末尾,当我将输出作为字符串返回时,它会被截断为 1024 个字符。为什么会这样?

4

2 回答 2

0

通常,它不会那样做,这可能意味着:

  1. 还有另一个ob_start($callback)带有特定回调活动的活动搞砸了(ob_get_level说什么?)。
  2. 操作后有误操作ob_get_clean()
  3. 涉及错误的检查方法,并且 1024 截止不正确(xdebug 对 var_dump 的限制、html-attributes 中的隐藏内容 & 不查看源等)

这三个是关于它的,没有代码就没什么好说的了。

于 2011-03-13T15:51:58.677 回答
0

这 1024 个字节可能不是输出的开头。某些内容可能已经通过了输出缓冲区。出于测试目的尝试:

ob_start(NULL, 1<<20);  // 1MB buffer

echo ...;

$all = ob_get_contents();
ob_end_clean();

也可以ob_get_flush()改为测试。如果一切都失败了,请使用自定义 ob_ 处理程序。

于 2011-03-13T15:57:01.780 回答