2012-09-20 141 views
0

我有一個可以在我的本地服務器(wamp,apache v2.22.2,php 5.4.3)上正常工作並測試unix服務器(apache,php 5.3)的應用程序。
但由於其他一些要求,它不適用於在Windows上運行的生產服務器。
代碼是這樣的:Php在緩衝時輸出內容

function renderFile() 
... 
ob_start(); 
ob_implicit_flush(false); 
require($_viewFile_); 
return ob_get_clean(); 

問題是,該文件所包含的內容立即outputed,而不是從函數返回。
事情是它在本地和測試服務器上工作,但不是在Windows上的新生產服務器上。是因爲apache/iis還是php配置?

+0

你在沖洗它之前得到的內容 – wesside

回答

1
function renderFile() { 
    ob_start(); 
    include($_viewFile_); 
    $view = ob_get_contents(); 
    ob_end_clean(); 
    return $view; 
} 

現在就做你想要的$view

echo renderFile(); 
+0

不,那不是。 ob_get_clean - 獲取當前緩衝區內容並刪除當前輸出緩衝區。另外,它爲什麼會在另外兩臺服務器上工作,而不是這一臺。而ob_implicit_flush(false)就是說,在每次輸出調用時都不會發生刷新。 – praxus