如何将某些内容附加到输出缓冲区的开头?
例如,假设您有以下代码:
ob_start();
echo '<p>Start of page.</p>';
echo '<p>Middle of page.</p>';
echo '<p>End of page</p>';
在将内容刷新到浏览器之前,如何添加内容以便在页面加载时 <p>Start of page.</p>
之前显示?
这听起来很简单,比如将指针移动到数组的开头,但我无法找到如何使用输出缓冲区。
答案 0 :(得分:4)
** PHP 5.3 **
ob_start(function($output) {
$output = '<p>Prepended</p>'.$output;
return $output;
});
echo '<p>Start of page.</p>';
echo '<p>Middle of page.</p>';
echo '<p>End of page</p>';
** PHP&lt; 5.3 **
function prependOutput($output) {
$output = '<p>Appended</p>'.$output;
return $output;
}
ob_start('prependOutput');
echo '<p>Start of page.</p>';
echo '<p>Middle of page.</p>';
echo '<p>End of page</p>';
答案 1 :(得分:0)
在您想要首次显示的内容之后使用2个ob_start命令和ob_end_flush(),然后在想要输出页面的其余部分时再次使用ob_end_flush结束缓冲区。
例如:
ob_start();
ob_start();
echo '<p>Start of page.</p>';
ob_end_flush();
echo '<p>Middle of page.</p>';
echo '<p>End of page</p>';
ob_end_flush();
答案 2 :(得分:0)
查看ob_start
的第一个参数(文档here),它允许您在缓冲区刷新或清理<时提供要回调的回调/ strong>即可。它接收一个字符串作为参数并输出一个字符串,因此它应该很容易
function writeCallback($buffer)
{
return "Added before " . $buffer;
}
ob_start("writeCallback");
答案 3 :(得分:0)
您可以使用ob_get_contents()函数
获取缓冲区的内容ob_start();
echo "World! ";
$out1 = ob_get_contents();
echo "Hello, ".$out1;
答案 4 :(得分:0)
在任何输出之前你想要它吗?如果是这样,那么你正在寻找auto_prepend_file
指令。 http://php.net/manual/en/ini.core.php