我正在處理別人的代碼,並且有~800行標記與標記混合在一起。我試圖在這些頁面上應用一些模板,我想我會先從輸出緩衝區中捕獲所有的輸出,然後將其作爲一個變量返回,然後逐件排序。ob_get_clean()的輸出被截斷爲1024個字符?
問題是,在緩衝區結尾處,當我以字符串的形式返回輸出時,它被截斷爲1024個字符。爲什麼會這樣?
我正在處理別人的代碼,並且有~800行標記與標記混合在一起。我試圖在這些頁面上應用一些模板,我想我會先從輸出緩衝區中捕獲所有的輸出,然後將其作爲一個變量返回,然後逐件排序。ob_get_clean()的輸出被截斷爲1024個字符?
問題是,在緩衝區結尾處,當我以字符串的形式返回輸出時,它被截斷爲1024個字符。爲什麼會這樣?
通常情況下,它沒有做到這一點,這可能意味着:
ob_start($callback)
與特定的回調活躍搞亂的東西了(什麼ob_get_level
說什麼?)。ob_get_clean()
這3個都是關於它的,沒有代碼就沒有太多說的了。
這些1024個字節可能不是輸出的開始。有些內容可能已經通過輸出緩衝區。出於測試目的嘗試:
ob_start(NULL, 1<<20); // 1MB buffer
echo ...;
$all = ob_get_contents();
ob_end_clean();
也可以用ob_get_flush()
代替。如果一切都失敗,請使用自定義ob_處理程序。
我剛剛檢查了php.ini文件,並將memory_limit設置爲32 MB,所以我懷疑這是它.. – doub1ejack 2011-03-13 15:46:07