无论如何都要在刷新之前更改输出缓冲区吗? 我试过这个函数ob_set_contents但似乎没有这样的函数, 我在header.php文件中有以下内容:
ob_start(null,0,PHP_OUTPUT_HANDLER_CLEANABLE);
我需要在footer.php文件的末尾执行以下操作:
$output = ob_get_contents();
$output=str_ireplace("<-BlogXmlLink->","/en/rss.xml",$output);
ob_set_contents($output);
ob_end_flush();
答案 0 :(得分:1)
查看有关function($output) { return str_ireplace("<-BlogXmlLink->","/en/rss.xml",$output); }
参数的手册。来自here:
output_callback
可以指定可选的output_callback函数。此函数将字符串作为参数,并应返回一个字符串。在刷新(发送)或清除输出缓冲区(使用ob_flush(),ob_clean()或类似函数)或在请求结束时将输出缓冲区刷新到浏览器时,将调用该函数。当调用output_callback时,它将接收输出缓冲区的内容作为其参数,并且期望返回一个新的输出缓冲区,该缓冲区将被发送到浏览器。如果output_callback不是可调用函数,则此函数将返回FALSE。这是回调签名:
string handler(string $ buffer [,int $ phase])
因此,对于第二个参数,不是null,而是执行一个执行的函数:
Node