我正在处理其他人的代码,并且有大约 800 行标记与标签混合在一起。我正在尝试将一些模板应用于这些页面,我想我会首先捕获输出缓冲区中的所有输出,将其作为变量返回,然后逐个整理。
问题是在缓冲区的末尾,当我将输出作为字符串返回时,它会被截断为 1024 个字符。为什么会这样?
我正在处理其他人的代码,并且有大约 800 行标记与标签混合在一起。我正在尝试将一些模板应用于这些页面,我想我会首先捕获输出缓冲区中的所有输出,将其作为变量返回,然后逐个整理。
问题是在缓冲区的末尾,当我将输出作为字符串返回时,它会被截断为 1024 个字符。为什么会这样?
通常,它不会那样做,这可能意味着:
ob_start($callback)
带有特定回调活动的活动搞砸了(ob_get_level
说什么?)。ob_get_clean()
这三个是关于它的,没有代码就没什么好说的了。
这 1024 个字节可能不是输出的开头。某些内容可能已经通过了输出缓冲区。出于测试目的尝试:
ob_start(NULL, 1<<20); // 1MB buffer
echo ...;
$all = ob_get_contents();
ob_end_clean();
也可以ob_get_flush()
改为测试。如果一切都失败了,请使用自定义 ob_ 处理程序。