2017-01-07 108 views
0

无论如何在刷新之前更改输出缓冲区吗? 我尝试这个功能ob_set_contents但似乎没有这样的功能, 我在我的header.php文件中:刷新之前更改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(); 

回答

1

查看有关ob_start参数的手册。从here

output_callback

可选output_callback功能可以被指定。该函数将一个字符串作为参数并返回一个字符串。当输出缓冲区被刷新(发送)或清除(使用ob_flush(),ob_clean()或类似的函数)时,或者在请求结束时将输出缓冲区刷新到浏览器时,函数将被调用。当调用output_callback时,它将接收输出缓冲区的内容作为其参数,并且预期会返回一个新的输出缓冲区,从而将其发送到浏览器。如果output_callback不是可调用函数,则此函数将返回FALSE。这是回调签名:

字符串处理函数(字符串$缓冲区[摘要$阶段])

所以不是空你的第二个论据的函数执行:

function($output) { return str_ireplace("<-BlogXmlLink->","/en/rss.xml",$output); } 
+0

非常感谢! – Vahid2017